Notice
Recent Posts
Recent Comments
Link
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ๊ทธ๋ํ ํ์
- Python
- ๊ทธ๋ํํ์
- ๋ถํ ์ ๋ณต
- ์ด์งํ์
- ๋งํฌ๋ค์ด
- GarbageCollector
- Stack
- github
- BFS
- deque
- Markdown
- DP
- ๋ฉด์ ๋ณต๊ธฐ
- ํ๋ก์ธ์ค
- ๋ฌธ์ ํ์ด
- ๋ฐฑ์ค
- ๋ชฌํฐํ
- ๋น๋ํจํด
- springboot
- ๋ธ๋ฃจํธํฌ์ค
- ํ๊ณ
- ์ ์๋ก
- Greedy
- ์ ์ ์ค๋ ๋
- ๊ทธ๋ฆฌ๋
- GC
- g1gc
- ๋ฐฐ์ด ๋๋ฆฌ๊ธฐ1
- ๊ตฌํ
Archives
- Today
- Total
FeelingXD
[๋ฐฑ์ค-1063] ํน โ๏ธ ๋ณธ๋ฌธ
โ Problem
๐ค How
๊ตฌํ, ์๋ฎฌ๋ ์ด์ ๋ฌธ์ ์ด๋ค ์ฒด์คํ์์ ํน์ ์์ง์์ ์๊ฐ ํด๋ณด์.
์์ง์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๊ณ ๋ ค ํด์ผ ํ ๊ฒ
- ํน์ ์ํ์ข์ฐ ๋๊ฐ ๋ชจ๋ ๋ฐฉํฅ์ 1์นธ์์ง์ผ ์ ์์ผ๋ฉฐ ์ด๋ํ ์์น์ ํฐ์ด ์์๊ฒฝ์ฐ ๊ฐ์ ๋ฐฉํฅ์ผ๋ก ๋ฐ๋ฉด์ ์ด๋ํด์ผํ๋ค.
- ํน์ด ์์ง์ผ์ ์๋ ์ ๋ ฅ์ด ๋์ฌ๊ฒฝ์ฐ ํด๋น ๋ช ๋ น์ ๊ฑด๋๋ด๋ค.
- ํน์ด ํฐ์ ๋ฐ๋ฉด์ ์์ง์ผ๋ ๋ฐ๋ฆฐ ํฐ์ด ์ด๋ํ ์์๋๊ฒฝ์ฐ(๋ณด๋ ๋ฐ์ผ๋ก ๋๊ฐ๋ฒ๋ฆฌ๋ ๊ฒฝ์ฐ) ์ด๊ฒฝ์ฐ ๋ํ ํน์ด ์ด๋ํ ์์๋ค.
์ ๋ ฅ ์กฐ๊ฑด์ ๋ฐ๋ผ ๊ณ ๋ ค ํด์ผ ํ ๊ฒ
์
๋ ฅ์ด ์ฒด์ค ์์นํ์๋ก ์ ํด์ง๋ค. ์ขํ๊ฐ ์ผ๋ก ์ฃผ์ด์ง๋๊ฒ์ด์๋๋ฏ๋ก ์ ์ ํ๊ฒ ๋ณํํด ์ฃผ์ด์ผ ํ๋ค. ํ์๋ ํ์ y๋ก ์ด์ x๋ก ๋๊ณ .
์
๋ ฅ์๋ฐ๋ผ ์ ์ ํ ๋ณํ ํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
โ Solve
# ํน
import sys
input =sys.stdin.readline
move={"R":(0,1),"L":(0,-1),"T":(-1,0),"B":(1,0),"RT":(-1,1),"LT":(-1,-1),"RB":(1,1),"LB":(1,-1)}
'''
y= ์ซ์ ์ขํ
x= ๋ฌธ์ ์ขํ
'''
def board_to_pos(word): # ์ฒด์ค๋ณด๋ ์์น๋ฅผ ์ขํ๋ก ๋ณํ
x=ord(word[0])-ord('A')
y=8-int(word[1])
return (y,x)
def pos_to_board(pos): # ์ขํ๋ฅผ ์ฒด์ค๋ณด๋ ์์น๋ก ๋ณํ
y,x=pos
return chr(x+ord('A'))+str(8-y)
def unit_move(next_move):
global k_pos, p_pos
k_cy,k_cx=k_pos
dy,dx=move[next_move]
k_ny,k_nx=k_cy+dy,k_cx+dx
if not (0<=k_ny<8 and 0<=k_nx<8): # ์์ด ๋ณด๋์นธ์ ๋์ด๊ฐ๋ ๊ฒฝ์ฐ
return
elif (k_ny,k_nx)==p_pos: # ์์ด ์ด๋ํ๋์นธ์ ํฐ์ด ์๋ ๊ฒฝ์ฐ
p_cy,p_cx=p_pos
p_ny,p_nx=dy+p_cy,dx+p_cx
if not (0<=p_ny<8 and 0<=p_nx<8): # ํฐ์ด ๋ณด๋์นธ์ ๋์ด๊ฐ๋ ๊ฒฝ์ฐ
return
# ํน์ ํฐ์์น๋ก ํฐ์ ์๋ก์ด์์น๋ก ์ด๋
k_pos=p_pos
p_pos=(p_ny,p_nx)
else:
k_pos=(k_ny,k_nx)
def solution():
global k_pos, p_pos
k_pos,p_pos,cases=map(str,input().split())
k_pos=board_to_pos(k_pos)
p_pos=board_to_pos(p_pos)
for _ in range(int(cases)):
unit_move(input().strip())
print(pos_to_board(k_pos))
print(pos_to_board(p_pos))
pass
if __name__=="__main__": # ์คํ๋๋ ๋ถ๋ถ
solution()
pass