๋ฌธ์ ์ค๋ช
๊ฒ์ ์บ๋ฆญํฐ๋ฅผ 4๊ฐ์ง ๋ช ๋ น์ด๋ฅผ ํตํด ์์ง์ด๋ ค ํฉ๋๋ค. ๋ช ๋ น์ด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- U: ์์ชฝ์ผ๋ก ํ ์นธ ๊ฐ๊ธฐ
- D: ์๋์ชฝ์ผ๋ก ํ ์นธ ๊ฐ๊ธฐ
- R: ์ค๋ฅธ์ชฝ์ผ๋ก ํ ์นธ ๊ฐ๊ธฐ
- L: ์ผ์ชฝ์ผ๋ก ํ ์นธ ๊ฐ๊ธฐ
์บ๋ฆญํฐ๋ ์ขํํ๋ฉด์ (0, 0) ์์น์์ ์์ํฉ๋๋ค. ์ขํํ๋ฉด์ ๊ฒฝ๊ณ๋ ์ผ์ชฝ ์(-5, 5), ์ผ์ชฝ ์๋(-5, -5), ์ค๋ฅธ์ชฝ ์(5, 5), ์ค๋ฅธ์ชฝ ์๋(5, -5)๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, "ULURRDLLU"๋ก ๋ช ๋ นํ๋ค๋ฉด
- 1๋ฒ ๋ช ๋ น์ด๋ถํฐ 7๋ฒ ๋ช ๋ น์ด๊น์ง ๋ค์๊ณผ ๊ฐ์ด ์์ง์ ๋๋ค.
- 8๋ฒ ๋ช ๋ น์ด๋ถํฐ 9๋ฒ ๋ช ๋ น์ด๊น์ง ๋ค์๊ณผ ๊ฐ์ด ์์ง์ ๋๋ค.
์ด๋, ์ฐ๋ฆฌ๋ ๊ฒ์ ์บ๋ฆญํฐ๊ฐ ์ง๋๊ฐ ๊ธธ ์ค ์บ๋ฆญํฐ๊ฐ ์ฒ์ ๊ฑธ์ด๋ณธ ๊ธธ์ ๊ธธ์ด๋ฅผ ๊ตฌํ๋ ค๊ณ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์์ ์์์์ ๊ฒ์ ์บ๋ฆญํฐ๊ฐ ์์ง์ธ ๊ธธ์ด๋ 9์ด์ง๋ง, ์บ๋ฆญํฐ๊ฐ ์ฒ์ ๊ฑธ์ด๋ณธ ๊ธธ์ ๊ธธ์ด๋ 7์ด ๋ฉ๋๋ค. (8, 9๋ฒ ๋ช ๋ น์ด์์ ์์ง์ธ ๊ธธ์ 2, 3๋ฒ ๋ช ๋ น์ด์์ ์ด๋ฏธ ๊ฑฐ์ณ ๊ฐ ๊ธธ์ ๋๋ค)
๋จ, ์ขํํ๋ฉด์ ๊ฒฝ๊ณ๋ฅผ ๋์ด๊ฐ๋ ๋ช ๋ น์ด๋ ๋ฌด์ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, "LULLLLLLU"๋ก ๋ช ๋ นํ๋ค๋ฉด
- 1๋ฒ ๋ช ๋ น์ด๋ถํฐ 6๋ฒ ๋ช ๋ น์ด๋๋ก ์์ง์ธ ํ, 7, 8๋ฒ ๋ช ๋ น์ด๋ ๋ฌด์ํฉ๋๋ค. ๋ค์ 9๋ฒ ๋ช ๋ น์ด๋๋ก ์์ง์ ๋๋ค.
์ด๋ ์บ๋ฆญํฐ๊ฐ ์ฒ์ ๊ฑธ์ด๋ณธ ๊ธธ์ ๊ธธ์ด๋ 7์ด ๋ฉ๋๋ค.
๋ช ๋ น์ด๊ฐ ๋งค๊ฐ๋ณ์ dirs๋ก ์ฃผ์ด์ง ๋, ๊ฒ์ ์บ๋ฆญํฐ๊ฐ ์ฒ์ ๊ฑธ์ด๋ณธ ๊ธธ์ ๊ธธ์ด๋ฅผ ๊ตฌํ์ฌ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์ ํ์ฌํญ
- dirs๋ stringํ์ผ๋ก ์ฃผ์ด์ง๋ฉฐ, 'U', 'D', 'R', 'L' ์ด์ธ์ ๋ฌธ์๋ ์ฃผ์ด์ง์ง ์์ต๋๋ค.
- dirs์ ๊ธธ์ด๋ 500 ์ดํ์ ์์ฐ์์ ๋๋ค.
์ ์ถ๋ ฅ ์
์
์ถ๋ ฅ ์ #1
๋ฌธ์ ์ ์์์ ๊ฐ์ต๋๋ค.
์
์ถ๋ ฅ ์ #2
๋ฌธ์ ์ ์์์ ๊ฐ์ต๋๋ค.
ํ์ด ์ฝ๋
def move(x, y, direction):
before_x = x
before_y = y
if direction == 'U':
if y < 5:
y += 1
elif direction == 'D':
if y > -5:
y -= 1
elif direction == 'L':
if x > -5:
x -= 1
elif direction == 'R':
if x < 5:
x +=1
return before_x, before_y, x, y
def solution(dirs):
answer = 0
log = {}
x, y = 0, 0
for d in dirs:
before_x, before_y, x, y = move(x, y, d)
if before_x != x or before_y != y:
key1 = "{}, {}, {}, {}".format(before_x, before_y, x, y)
key2 = "{}, {}, {}, {}".format(x, y, before_x, before_y)
if key1 in log or key2 in log:
continue
else:
log[key1] = True
log[key2] = True
answer += 1
return answer
๊ตฌํ ๋ฌธ์ ์ด๋ฉฐ, ํด์๋ฅผ ํ์ฉํด ๋ฌธ์ ๋ฅผ ํ์๋ค.
๋ง์ฝ (0,0)์์ (0,1)๋ก ์ด๋ํ๋ค๋ฉด, (0,0)→(0,1)์ด๋, (0,1)→(0,0)์ด๋ ๊ฐ์ ๊ธธ์ ์ง๋๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋์ key1, key2๋ก ์ด๋ฅผ ํํํ๊ณ , ๊ธฐ์กด์ ๊ฐ๋ ๊ธธ์ ์๋ฏธํ๋ ํด์ฌ๋ฅผ log ๋ณ์๋ก ์์ฑํ๋ค.
์ง๋๊ฐ์ง ์์๋ค๋ฉด ๋ก๊ทธ์ ์ ์ฅํ๊ณ answer += 1์ ํด์ค๋ค.
๊ทธ ์ธ์๋ ํฌ๊ฒ ์ด๋ ค์ด ๋ถ๋ถ์ด ์๋ค.
'๐ ์ฝ๋ฉํ ์คํธ ๋๋น : PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ชจ์์ฌ์ (level2, python) (1) | 2022.09.13 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] [3์ฐจ] ํ์ผ๋ช ์ ๋ ฌ (level2, python) (0) | 2022.09.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํฌํธ๋ฆฌ (level2, python) (0) | 2022.09.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ ๋ฐ๋จน๊ธฐ (level2, python) (0) | 2022.09.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] [3์ฐจ] n์ง์ ๊ฒ์ (level2, python) (0) | 2022.09.13 |