구현 유형(완전 탐색, 시뮬레이션)
2023. 9. 12. 14:45ㆍComputer/자료구조, 알고리즘
코딩 테스트에서 구현이란 '머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정'
구현 문제 유형은 모든 범위의 코딩 테스트 문제 유형을 포함하는 개념이다.
코딩 테스트에서는 구현이 중심이 되는 문제가 자주 출제된다.
구현 유형(완전 탐색, 시뮬레이션)의 문제는 '풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제'
완전 탐색 유형 - 모든 경우의 수를 다 계산하는 해결 방법
시뮬레이션 유형 - 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행
상하좌우
n = int(input())
x, y = 1, 1
d = input().split()
dd = ['L','R','U','D']
dx = [0, 0, -1, 1] # 오른쪽이면 x좌표가 움직일 것 같음
dy = [-1, 1, 0, 0]
for plan in d:
for i in range(4):
if plan == dd[i]:
nx = x + dx[i]
ny = y + dy[i]
if nx < 1 or nx > n or ny < 1 or ny > n:
continue
x, y = nx, ny
print(x, y)
왕실의 나이트
input_data = input()
x = int(input_data[1])
y = int(ord(input_data[0])) - int(ord('a')) + 1
# 나이트가 이동할 수 있는 8가지 방향 정의, steps 변수가 dx dy 변수의 기능을 대신하여 수행
steps = [(-2, -1), (-1, -2), (1, -2), (2, -1), (2, 1), (1, 2), (-1, 2), (-2, 1)]
result = 0
for step in steps:
nx = x + steps[0]
ny = y + steps[1]
if nx>=1 and ny>=1 and nx<=8 and ny<=8:
result+=1
상하좌우 참고한 코드
x, y = input().split()
x = int(ord(x)) - 96 # ord()-문자열을 아스키코드로, chr()-아스키코드를 문자열로, A는 64 a는 97
result = 0
dx = [2, 2, -2, -2, 1, -1, 1, -1]
dy = [1, -1, 1, -1, 2, 2, -2, -2]
for i in range(8):
nx = x + dx[i]
ny = y + dy[i]
if nx<1 or ny<1 or nx>8 or ny>8:
continue
result+=1
print(result)
시각
n = int(input())
count = 0
for hour in range(n+1):
for min in range(60):
for sec in range(60):
time = str(hour)+str(min)+str(sec)
if '3' in time:
count += 1
print(count)
게임 개발
y, x = int(input().split()) # 세로 N 가로 M
cy, cx, d = int(input().split()) # 게임 캐릭터 좌표 (A, B) 와 방향 d
# 0북 1동 2남 3서, 맵 외곽은 바다 0육지 1바다
dd = [0, 1, 2, 3] # 북, 동, 남, 서
dy = [0, -1, 0, 1]
dx = [-1, 0, 1, 0]
# 첫째 줄에 이동을 마친 후 캐릭터가 방문한 칸의 수 출력
더보기
출처 : 이것이 ~ 코딩 테스트다 with 파이썬
'Computer > 자료구조, 알고리즘' 카테고리의 다른 글
이진 트리 (0) | 2023.12.01 |
---|---|
정렬 (0) | 2023.09.15 |
그래프 (0) | 2023.06.14 |
탐색(search) (0) | 2023.06.02 |
파이썬 선형 자료구조(배열/선형 리스트, 연결 리스트) (0) | 2023.04.12 |