코딩테스트 역량 강화 교육(거점형 특화 프로그램)이라는 프로그램에 참여해 공부한 내용입니다.
- IT 직무로 취업을 희망하는 지원자들이 코딩테스트를 통과할 수 있는 알고리즘을 활용한 프로그래밍 교육이며, PCCP 자격증 취득이 목표인 프로그램
- 상세 설명 - 수원대학교(대학일자리 플러스센터)
만약 이런 board
가 있다면
# 방향배열
# 시계방향으로 상우하좌 순
dr = [-1, 0, 1, 0]
dc = [0, 1, 0, -1]
방향 배열을 이용한 상하좌우의 좌표
아래 코드는 2차원 배열 board
를 받으면, 방향 배열을 이용해
현재 위치의 값 i, j
이 상하좌우 좌표들의 값 nr, nc
보다 하나라도 크거나 같으면
False
를 return
하는 예시 함수다.
def simulation(board)
dr = [-1, 0, 1, 0]
dc = [0, 1, 0, -1]
n = len(board)
flag = True
for i in range(5):
for j in range(5):
for k in range(4):
nr = i + dr[k]
nc = j + dc[k]
if nr >= 0 and nr < 5 and nc >= 0 and nc < 5:
if board[nr][nc] <= board[i][j]:
flag = False
return flag
만약 8방향 탐색을 하고 싶다면 방향 배열은 아래와 같다.
dr = [-1, -1, 0, 1, 1, 1, 0, -1]
dc = [0, 1, 1, 1, 0, -1, -1, -1]
시뮬레이션 알고리즘을 이용해 풀이한 문제들은 아래와 같다.