728x90
반응형
# 오늘의 문제
이것이 코딩 테스트다. 챕터4-1 110page 상하좌우
# 나의 코드
#기본 코드 변수들 세팅
n = int(input())
move = list(map(str , input().split()))
loca = [1,1]
#move인자 받아서 루프돌려서
for dir in move:
#각 인자에 따른 이프문 세팅
if dir == 'R' and loca[1] != 5:
loca[1] = loca[1] + 1
elif dir == 'L' and loca[1] != 1:
loca[1] = loca[1] - 1
elif dir == 'U' and loca[0] != 1:
loca[0] = loca[0] - 1
elif dir == 'D' and loca[0] != 5:
loca[0] = loca[0] + 1
#프린트
print(loca)
# 정답과의 비교
1. 변수 세팅을 받을때 나는 move 변수 그러니까 이동할 범위를 좀더 복잡하게 리스트로 만들었지만 아래의 코드는 훨씬 간결하게 만들었다.
2. dx 와 dy변수 그리고 move_types라는 변수를 리스트화 해서 for문을 돌릴때 move_types리스트 길이의 범위만큼 포문을 돌면서 값이 같다면 dx dy의 i번째 변수가 행해야 할 행위와 move_types의 스트링이 행해야 할 행위가 같으니 그것을 모두 연산해서 값을 저장 한 후 if문으로 예외조건 거르고 마지막에 nx ny라는 임시값과 x,y를 치환한게 내 코드보다 자료구조를 훨씬 유연하게 사용했다.
n = int(input())
x,y = 1,1
plans = input().split()
dx = [0,0,-1,1]
dy = [-1,1,0,0]
move_types = ['L','R','U','D']
for plan in plans:
for i in range(len(move_types))
if plan == move_types[i]:
nx = x + dx[i]
ny = y + dy[i]
if nx < 1 or ny < 1 or nx > n or ny > n :
continue
x,y = nx, ny
print(x,y)
728x90
'프로그래밍 회고록 > Python' 카테고리의 다른 글
2021.10.25 코테_왕실의 나이트 (0) | 2021.10.26 |
---|---|
2021.10.25 코테_시각 (0) | 2021.10.25 |
2021.10.21 코테_1이 될 때까지 (0) | 2021.10.22 |
2021.10.21 코테_숫자 카드 게임 (0) | 2021.10.21 |
2021.21.19 코테_큰 수의 법칙 (0) | 2021.10.19 |