[TIL/크래프톤 정글] DAY 67

배재준·2025년 5월 16일

크래프톤 정글 - TIL

목록 보기
60/93
post-thumbnail

2025.05.15

TIL(TODAY I LEARN)


  • 오늘한 내용 : 백준 - 13567

  • WEEK 09 : 정글 끝까지(PintOS) - Threads


13567 - 로봇 - 25/05/16

문제 링크 - 이동

내 코드

 import sys
 
 input = sys.stdin.readline
 
 M, n = map(int,input().split())
 cmd = list()
 num = list()
 for _ in range(n):
     a,b = input().split()
     cmd.append(a)
     num.append(int(b))
     
     #오 아래 왼 위 
 dx = [1, 0, -1, 0]
 dy = [0, -1, 0, 1]
 
 ddir = 0
 x,y = 0,0
 
 valid = 1
 
 for i in range(n):
     if cmd[i] == 'MOVE':
         mx = x + (dx[ddir] * num[i])
         my = y + (dy[ddir] * num[i])
         if 0 <= mx <= M and 0 <= my <= M:
             x = mx
             y = my
         else:
             valid = 0
             break
     else: # TURN
         if num[i] == 0: #좌 90 회전
             ddir = (ddir + 3) % 4
         else: # 우 90 회전
             ddir = (ddir + 1) % 4
         
         
 if valid == 1:
     print(f"{x} {y}")
 else: 
     print(-1)

ddikr을 구현할 때

	ddir = (ddir += 1) % 4
	ddir = (ddir -= 1) % 4

이런 식으로 했다가 음수 값이 되어 버려서 문제가 발생 했었음.
가볍게 풀 수 있겠다 했다가 한번 멈칫 했던 문제.

0개의 댓글