-
[๋ฐฑ์ค] 8911 ๊ฑฐ๋ถ์ด with PythonPS 2022. 3. 21. 18:32728x90๋ฐ์ํ
๐ BOJ 8911 ๊ฑฐ๋ถ์ด
๐ก ์กฐ๊ฑด
2์ฐจ์ ํ๋ฉด ์์์ ์์ง์ผ ์ ์๋ ๊ฑฐ๋ถ์ด ๋ก๋ด์ ํ๋ ๊ฐ์ง๊ณ ์๋ค. ๊ฑฐ๋ถ์ด ๋ก๋ด์๊ฒ ๋ด๋ฆด ์ ์๋ ๋ช ๋ น์ ๋ค์๊ณผ ๊ฐ์ด ๋ค๊ฐ์ง๊ฐ ์๋ค.
F: ํ ๋๊ธ ์์ผ๋ก
B: ํ ๋๊ธ ๋ค๋ก
L: ์ผ์ชฝ์ผ๋ก 90๋ ํ์
R: ์ค๋ฅธ์ชฝ์ผ๋ก 90๋ ํ์ L๊ณผ R๋ช ๋ น์ ๋ด๋ ธ์ ๋, ๋ก๋ด์ ์ด๋ํ์ง ์๊ณ , ๋ฐฉํฅ๋ง ๋ฐ๊พผ๋ค.
๊ฑฐ๋ถ์ด๋ ํญ์ x์ถ๊ณผ y์ถ์ ํํํ ๋ฐฉํฅ์ผ๋ก๋ง ์ด๋ํ๋ค.๊ฑฐ๋ถ์ด๊ฐ ์ง๋๊ฐ ์์ญ์ ๋ชจ๋ ํฌํจํ ์ ์๋ ๊ฐ์ฅ ์์ ์ง์ฌ๊ฐํ์ ๋์ด๋ฅผ ๊ตฌํ๋ ๋ฌธ์ .
๋จ, ์ง์ฌ๊ฐํ์ ๋ชจ๋ ๋ณ์ x์ถ์ด๋ y์ถ์ ํํ์ด์ด์ผ ํ๋ค.๊ฑฐ๋ถ์ด๋ ๊ฐ์ฅ ์ฒ์์ (0, 0)์ ์๊ณ , ๋ถ์ชฝ์ ์ณ๋ค๋ณด๊ณ ์๋ค.
์ด ๊ฒฝ์ฐ์ ๊ฑฐ๋ถ์ด๊ฐ ์ง๋๊ฐ ์์ญ์ ๋ชจ๋ ํฌํจํ๋ ์ง์ฌ๊ฐํ์ ์ ๋ถ์ด๊ณ , ์ ๋ถ์ ํ ๋ณ์ด 0์ธ ์ง์ฌ๊ฐํ์ผ๋ก ์๊ฐํ ์ ์๋ค.
๋ฐ๋ผ์, ์ ๋ถ์ ๊ฒฝ์ฐ์ ๋์ด๋ 0์ด ๋๋ค.๊ตฌํ, ์๋ฎฌ๋ ์ด์ ์ ํ์ ๋ฌธ์
๐ฅ ์์ค ์ฝ๋
from sys import stdin for _ in range(int(stdin.readline())): x, y, direction = 0, 0, 0 visited = set() for command in list(stdin.readline().rstrip()): if command == 'F': if direction == 0: y += 1 elif direction == 1: x += 1 elif direction == 2: y -= 1 else: x -= 1 elif command == 'B': if direction == 0: y -= 1 elif direction == 1: x -= 1 elif direction == 2: y += 1 else: x += 1 elif command == 'L': if direction == 0: direction = 3 else: direction -= 1 elif command == 'R': direction += 1 direction %= 4 visited.add((x, y)) max_x, min_x = 0, 0 max_y, min_y = 0, 0 for x, y in visited: max_x, max_y = max(max_x, x), max(max_y, y) min_x, min_y = min(min_x, x), min(min_y, y) height = abs(max_y) + abs(min_y) width = abs(max_x) + abs(min_x) print(height * width)
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์
3 FFLF FFRRFF FFFBBBRFFFBBB
์คํ๊ฒฐ๊ณผ
2 0 9
โจ๏ธ ๋ฌธ์ ํ์ด
๋ฌธ์ ์์ ์๊ตฌํ๋๋๋ก ๊ตฌํ์ ํ๋ฉด ๋๋ ๋ฌธ์ ์ ๋๋ค.
๋ฐฉํฅ๊ฐ์ +1 ํด์ค ๋ 4๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ฉด ๋์ฑ ํธํฉ๋๋ค.
๐พ ๋๋์
- ์ฌ๋ฐ๋ค.
๋ฐ์ํ'PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 10211 Maximum Subarray with Python (0) 2022.03.22 [๋ฐฑ์ค] 8974 ํฌ์ฃผ์ ์ํ์ํ with Python (0) 2022.03.21 [๋ฐฑ์ค] 5671 ํธํ ๋ฐฉ ๋ฒํธ with Python (0) 2022.03.18 [๋ฐฑ์ค] 2636 ์น์ฆ with Python (0) 2022.03.18 [๋ฐฑ์ค] 2631 ์ค์ธ์ฐ๊ธฐ with Python (0) 2022.03.18