๋ฌธ์ ์ค๋ช
์ง๋๋ค๋๋ ๊ธธ์ 'O', ์ฅ์ ๋ฌผ์ 'X'๋ก ๋ํ๋ธ ์ง์ฌ๊ฐํ ๊ฒฉ์ ๋ชจ์์ ๊ณต์์์ ๋ก๋ด ๊ฐ์์ง๊ฐ ์ฐ์ฑ ์ ํ๋ คํฉ๋๋ค. ์ฐ์ฑ ์ ๋ก๋ด ๊ฐ์์ง์ ๋ฏธ๋ฆฌ ์ ๋ ฅ๋ ๋ช ๋ น์ ๋ฐ๋ผ ์งํํ๋ฉฐ, ๋ช ๋ น์ ๋ค์๊ณผ ๊ฐ์ ํ์์ผ๋ก ์ฃผ์ด์ง๋๋ค.
- ["๋ฐฉํฅ ๊ฑฐ๋ฆฌ", "๋ฐฉํฅ ๊ฑฐ๋ฆฌ" … ]
์๋ฅผ ๋ค์ด "E 5"๋ ๋ก๋ด ๊ฐ์์ง๊ฐ ํ์ฌ ์์น์์ ๋์ชฝ์ผ๋ก 5์นธ ์ด๋ํ๋ค๋ ์๋ฏธ์ ๋๋ค. ๋ก๋ด ๊ฐ์์ง๋ ๋ช ๋ น์ ์ํํ๊ธฐ ์ ์ ๋ค์ ๋ ๊ฐ์ง๋ฅผ ๋จผ์ ํ์ธํฉ๋๋ค.
- ์ฃผ์ด์ง ๋ฐฉํฅ์ผ๋ก ์ด๋ํ ๋ ๊ณต์์ ๋ฒ์ด๋๋์ง ํ์ธํฉ๋๋ค.
- ์ฃผ์ด์ง ๋ฐฉํฅ์ผ๋ก ์ด๋ ์ค ์ฅ์ ๋ฌผ์ ๋ง๋๋์ง ํ์ธํฉ๋๋ค.
์ ๋ ๊ฐ์ง์ค ์ด๋ ํ๋๋ผ๋ ํด๋น๋๋ค๋ฉด, ๋ก๋ด ๊ฐ์์ง๋ ํด๋น ๋ช
๋ น์ ๋ฌด์ํ๊ณ ๋ค์ ๋ช
๋ น์ ์ํํฉ๋๋ค.
๊ณต์์ ๊ฐ๋ก ๊ธธ์ด๊ฐ W, ์ธ๋ก ๊ธธ์ด๊ฐ H๋ผ๊ณ ํ ๋, ๊ณต์์ ์ข์ธก ์๋จ์ ์ขํ๋ (0, 0), ์ฐ์ธก ํ๋จ์ ์ขํ๋ (H - 1, W - 1) ์
๋๋ค.
๊ณต์์ ๋ํ๋ด๋ ๋ฌธ์์ด ๋ฐฐ์ด park, ๋ก๋ด ๊ฐ์์ง๊ฐ ์ํํ ๋ช ๋ น์ด ๋ด๊ธด ๋ฌธ์์ด ๋ฐฐ์ด routes๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ก๋ด ๊ฐ์์ง๊ฐ ๋ชจ๋ ๋ช ๋ น์ ์ํ ํ ๋์ธ ์์น๋ฅผ [์ธ๋ก ๋ฐฉํฅ ์ขํ, ๊ฐ๋ก ๋ฐฉํฅ ์ขํ] ์์ผ๋ก ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- 3 ≤ park์ ๊ธธ์ด ≤ 50
- 3 ≤ park[i]์ ๊ธธ์ด ≤ 50
- park[i]๋ ๋ค์ ๋ฌธ์๋ค๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ ์์์ง์ ์ ํ๋๋ง ์ฃผ์ด์ง๋๋ค.
- S : ์์ ์ง์
- O : ์ด๋ ๊ฐ๋ฅํ ํต๋ก
- X : ์ฅ์ ๋ฌผ
- park[i]๋ ๋ค์ ๋ฌธ์๋ค๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ ์์์ง์ ์ ํ๋๋ง ์ฃผ์ด์ง๋๋ค.
- park๋ ์ง์ฌ๊ฐํ ๋ชจ์์ ๋๋ค.
- 3 ≤ park[i]์ ๊ธธ์ด ≤ 50
- 1 ≤ routes์ ๊ธธ์ด ≤ 50
- routes์ ๊ฐ ์์๋ ๋ก๋ด ๊ฐ์์ง๊ฐ ์ํํ ๋ช ๋ น์ด๋ฅผ ๋ํ๋ ๋๋ค.
- ๋ก๋ด ๊ฐ์์ง๋ routes์ ์ฒซ ๋ฒ์งธ ์์๋ถํฐ ์์๋๋ก ๋ช ๋ น์ ์ํํฉ๋๋ค.
- routes์ ์์๋ "op n"๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, op๋ ์ด๋ํ ๋ฐฉํฅ, n์ ์ด๋ํ ์นธ์ ์๋ฅผ ์๋ฏธํฉ๋๋ค.
- op๋ ๋ค์ ๋ค ๊ฐ์ง์ค ํ๋๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- N : ๋ถ์ชฝ์ผ๋ก ์ฃผ์ด์ง ์นธ๋งํผ ์ด๋ํฉ๋๋ค.
- S : ๋จ์ชฝ์ผ๋ก ์ฃผ์ด์ง ์นธ๋งํผ ์ด๋ํฉ๋๋ค.
- W : ์์ชฝ์ผ๋ก ์ฃผ์ด์ง ์นธ๋งํผ ์ด๋ํฉ๋๋ค.
- E : ๋์ชฝ์ผ๋ก ์ฃผ์ด์ง ์นธ๋งํผ ์ด๋ํฉ๋๋ค.
- 1 ≤ n ≤ 9
- op๋ ๋ค์ ๋ค ๊ฐ์ง์ค ํ๋๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
park | routes | result |
["SOO","OOO","OOO"] | ["E 2","S 2","W 1"] | [2,1] |
["SOO","OXX","OOO"] | ["E 2","S 2","W 1"] | [0,1] |
["OSO","OOO","OXO","OOO"] | ["E 2","S 3","W 1"] | [0,0] |
์ ์ถ๋ ฅ ์ ์ค๋ช
- ์
์ถ๋ ฅ ์ #1
- ์ ๋ ฅ๋ ๋ช ๋ น๋๋ก ๋์ชฝ์ผ๋ก 2์นธ, ๋จ์ชฝ์ผ๋ก 2์นธ, ์์ชฝ์ผ๋ก 1์นธ ์ด๋ํ๋ฉด [0,0] -> [0,2] -> [2,2] -> [2,1]์ด ๋ฉ๋๋ค.
- ์
์ถ๋ ฅ ์ #2
- ์ ๋ ฅ๋ ๋ช ๋ น๋๋ก๋ผ๋ฉด ๋์ชฝ์ผ๋ก 2์นธ, ๋จ์ชฝ์ผ๋ก 2์นธ, ์์ชฝ์ผ๋ก 1์นธ ์ด๋ํด์ผํ์ง๋ง ๋จ์ชฝ์ผ๋ก 2์นธ ์ด๋ํ ๋ ์ฅ์ ๋ฌผ์ด ์๋ ์นธ์ ์ง๋๊ธฐ ๋๋ฌธ์ ํด๋น ๋ช ๋ น์ ์ ์ธํ ๋ช ๋ น๋ค๋ง ๋ฐ๋ฆ ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก๋ [0,0] -> [0,2] -> [0,1]์ด ๋ฉ๋๋ค.
- ์
์ถ๋ ฅ ์ #3
- ์ฒ์ ์ ๋ ฅ๋ ๋ช ๋ น์ ๊ณต์์ ๋๊ฐ๊ฒ ๋๊ณ ๋ ๋ฒ์งธ๋ก ์ ๋ ฅ๋ ๋ช ๋ น ๋ํ ์ฅ์ ๋ฌผ์ ์ง๋๊ฐ๊ฒ ๋๋ฏ๋ก ๋ ์ ๋ ฅ์ ์ ์ธํ ์ธ ๋ฒ์งธ ๋ช ๋ น๋ง ๋ฐ๋ฅด๋ฏ๋ก ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. [0,1] -> [0,0]
ํ์ด
- ๋ฌด์ง์ฑ ์ฝ๋ฉํ๊ธฐ ์ข์ ๋ฌธ์ ๋ค...
- ๋ฐฐ์ด๋ก ์ง๋ ๋ง๋ค์ด์ ํ์นธ์ฉ ์์ง์ด๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ง๋ค์.
def solution(park, routes):
height = len(park)
width = len(park[0])
dic = {"S":(0,1), "N":(0,-1), "W":(-1,0), "E":(1,0)}
for i in range(height):
for j in range(width):
if park[i][j] == "S":
pos = (j, i)
break
for s in routes:
d, r = s.split()
for i in range(int(r)):
tmp = (pos[0] + dic[d][0], pos[1] + dic[d][1])
if tmp[0] < 0: break
if tmp[0] >= width: break
if tmp[1] < 0: break
if tmp[1] >= height: break
if park[tmp[1]][tmp[0]] == "X": break
pos = tmp
print(pos)
return 1
- ๋ก ํ๋๊ฒ ์๋๋ผ. ๋ช ๋ น์ ๋จผ์ ์ฒดํฌํ๊ณ ๋ฌธ์ ์์ผ๋ฉด ๋์ค์ ์์ง์ด๋ ๋ฐฉ์์ด๋ฏ๋ก... ใ ใ ใ
- ๊ทธ๋ฅ ํด๋น ๋ฐฉํฅ์ผ๋ก for๋ฌธ ๋๋ ค์ ์ฒดํฌํ๋ ๊ฑธ๋ก ํด์ผํ๋ค.
def solution(park, routes):
height = len(park)
width = len(park[0])
dic = {"S":(0,1), "N":(0,-1), "W":(-1,0), "E":(1,0)}
for i in range(height):
for j in range(width):
if park[i][j] == "S":
pos = (j, i)
break
for s in routes:
d, r = s.split()
r = int(r)
success = 0
for i in range(r+1):
tmp = (pos[0] + dic[d][0]*i, pos[1] + dic[d][1]*i)
if tmp[0] < 0:
success = 0
break
elif tmp[0] >= width:
print(tmp[0])
success = 0
break
elif tmp[1] < 0:
success = 0
break
elif tmp[1] >= height:
success = 0
break
elif park[tmp[1]][tmp[0]] == "X":
success = 0
break
else:
success = 1
if success == 1:
pos = pos[0] + dic[d][0]*r, pos[1] + dic[d][1]*r
return [pos[1], pos[0]]
- ๋ฌด์ง์ฑ์ผ๋ก ๋ฌธ์ ํด๊ฒฐ!
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค LV2 ๊ด๋ฌผ ์บ๊ธฐ (0) | 2023.06.23 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค LV2 ์ฐ์๋ ๋ถ๋ถ ์์ด์ ํฉ (0) | 2023.06.23 |
ํ๋ก๊ทธ๋๋จธ์ค LV1 ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ (0) | 2023.06.23 |
ํ๋ก๊ทธ๋๋จธ์ค LV1 ์ถ์ต ์ ์ (0) | 2023.06.22 |
ํ๋ก๊ทธ๋๋จธ์ค์์ ๋ ๊ฐ์ ์ด๋ณด๋ฅผ ์ํด 0~2๋ ๋ฒจ ๋ฌธ์ ๋ฅผ ์ถ๊ฐ๋ก ๋ด์ฃผ์ จ๋ค. (0) | 2023.06.15 |