[22.08.11] Coding Test
코딩 테스트 준비
#코딩테스트 #단순구현 #implementation
-
코딩 테스트 준비1
기본 코딩 테스트는 주로 문제의 내용을 코드로 구현 가능한지 테스트한다.
- 문제 풀이에 시간 제한이 없는 경우가 많기 때문에 시간 복잡도를 생각하지 않고 풀어보는 것이 좋다.
- 완전탐색 중에서도 2차원 배열의 탐색, 델타 탐색 등 선형 탐색이 주를 이룬다.
- 삼성 SW역량테스트 IM 시험이 대표적인 예시이다.
-
단순 구현 (Implementation)
문제에 제시된 풀이 과정을 그대로 구현하는 유형이다.
- 시뮬레이션의 경우 완전탐색 유형 중 하나, 모든 경우의 수를 탐색하여 풀이한다.
- 아이디어나 알고리즘을 요구하기 보다는, 문제에 제시된 과정을 그대로 구현할 수 있는가가 핵심
- 삼성 SW역량테스트 IM,A형에서 주로 출제된다.
델타 값을 이용한 탐색과 아스키코드를 사용한다. 단순 구현 문제이므로, 문제에 제시된 동작을 그대로 구현하면 된다. (제한시간 40분 이상)
-
상하좌우_대각선의 8방향 델타값을 이용한다.
# 8방향 델타값 directions = { "R": (0, 1), "L": (0, -1), "B": (1, 0), "T": (-1, 0), "RT": (-1, 1), "LT": (-1, -1), "RB": (1, 1), "LB": (1, -1), }
-
아스키코드를 이용해 체스판 위치를 좌표로 변환한다.
k, s, n = input().split() kx, ky = 8 - int(k[1]), ord(k[0]) - 65 # king x, y sx, sy = 8 - int(s[1]), ord(s[0]) - 65 # stone x, y
ord()는 특정 문자를 아스키코드로 변환하는 파이썬 내장 함수이다.
65는 아스키코드에서 ‘A’를 나타내므로, 이를 빼서 열의 좌표값을 구한다.
DFS 방식으로 출발점, 도착점 경로 문제 자주 나온다
출발 ㄱ 벽 ㅣ 벽 벽 벽 ㅣ 벽 벽 벽 벽 ㄴ ㅡ ㅡ ㄱ 벽 벽 벽 벽 도착 # 입력 5 5 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 # 출력 (출발점 -> 도착점 경로) >>> [(0, 0), (0, 1), (1, 1), (2, 1), (3, 1), (3, 2), (3,3), (3, 4), (4, 4)]
visited = [[False] * m for _ in range(n)]
False False False False False False False False False False False False False False False False False False False False False False False False False