728x90
반응형
* 해당 문제 및 해설은 "이것이 코딩 테스트 다 with 파이썬" 책을 기준으로 요약 및 정리 하여 작성하였습니다.
http://www.yes24.com/product/goods/91433923
아이디어를 코드로 바꾸는 구현
구현 이란 '머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정' 이다.
구현 문제 유형은 모든 범위의 코딩 테스트 문제 유형을 포함하는 개념이다.
문제 설명 : 구현 상하좌우
여행가 A 는 N X N 크기의 정사각형 공간 위에 서 있다. 이 공간은 1 X 1 크기의 정사각형으로 나누어져 있다.
가장 왼쪽 위 좌표는 (1 , 1) 이며, 가장 오른쪽 아래 좌표는 (N , N) 에 해당한다.
(생략)
계획서에는 하나의 줄에 띄어쓰기를 기준으로 하여 L, R, U, D 중 하나의 문자가 반복적으로 적혀 있다.
각 문자의 의미는 다음과 같아
L : 왼쪽으로 한 칸 이동
R : 오른쪽으로 한 칸 이동
U : 위로 한 칸 이동
D :아래로 한 칸 이동
아래 이미지와 같이 계획서를 짠다고 가정해보자.
1) ( 1 , 1 ) 에서 R 이동하면 ( 1 , 2 ) 이다.
2) ( 1 , 2 ) 에서 R 이동하면 ( 1 , 3 ) 이다.
3) ( 1 , 3 ) 에서 R 이동하면 ( 1 , 4 ) 이다.
4) ( 1 , 4 ) 에서 U 이동하면 ( 0 , 4 ) 이다. 공간 밖은 무시한다
5) ( 1 , 4 ) 에서 D 이동하면 ( 2 , 4 ) 이다.
6) ( 2 , 4 ) 에서 D 이동하면 ( 3 , 4 ) 이다.
계획서가 주어졌을 때 여행가 A 가 최종적으로 도착할 지점의 좌표를 출력하는 프로그램을 작성하시오.
입력 조건
- 첫째 줄에 공간의 크기를 나타내는 N 이 주어진다. (1 ≤ N ≤ 100)
- 둘째 줄에 여행가 A 가 이동할 계획서 내용이 주어진다. (1 ≤ 이동 횟수 ≤ 100)
출력 조건
- 첫째 줄에 여행가 A 가 최종적으로 도착할 지점의 좌표 (X, Y)를 공백으로 구분하여 출력한다.
예시
입력 예시 | 출력 예시 |
5 R R R U D D |
3 4 |
답변 및 해설
# N 을 입력받기
n = int(input())
x, y = 1, 1
plans = input().split()
# L, R, U, D 에 따른 이동 방향
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 > n or nx < 1 or ny > n or ny < 1 :
continue
x, y = nx, ny
print(x, y)
개인적인 생각
문제를 봤을 때, 굉장히 간단한데 구현이 살짝 까다롭네? 라고 생각 했던 문제이다.
dx, dy 변수를 잡고 상 하 좌 우 를 X 축 / Y 축 기준으로 생각하니 값들이 조금 달라서 헷갈렸던 문제이다.
현재 구현문제로 나와 간단한 난이도를 보이지만, 조금 더 활용하면 dfs 나 bfs 로 변형되어 나오는 경우를 종종 봤기 때문에
기본기를 조금 더 다듬고 구현을 더 빠르게 코딩할 수 있는 Physical 을 기르고자 한다.
오늘의 개발자 명언
‘컴퓨터가 생각할 수 있을까?’이렇게 묻는 것은 ‘잠수함이 물 속을 다닐 수 있을까?’라고 묻는 것과 같다.
(Edsger W. Dijkstra, 구조적 프로그래밍, 세마포어 등으로 유명한 컴퓨터 과학자)
출처 : 프로그래밍에 관한 명언 101가지
728x90
반응형
'개발 > Coding Test - Python' 카테고리의 다른 글
[Python] 이것이 코딩테스트다 with 파이썬 - 구현 - 왕실의 나이트 (0) | 2023.01.21 |
---|---|
[Python] 이것이 코딩테스트다 with 파이썬 - 구현 - 시각 (0) | 2023.01.20 |
[Python] 이것이 코딩테스트다 with 파이썬 - 구현이란? (0) | 2023.01.20 |
[Python] 이것이 코딩테스트다 with 파이썬 - 그리디 - 1이 될 때 까지 (2) | 2023.01.19 |
[Python] 이것이 코딩테스트다 with 파이썬 - 그리디 - 숫자 카드 게임 (0) | 2023.01.17 |