본문 바로가기
알고리즘

구현 유형 알고리즘 정리

by korea_musk 2021. 1. 23.

구현 유형 알고리즘은 풀이를 생각해내기는 쉽지만 코드로 작성할 시 어려움을 겪는 알고리즘입니다.

시뮬레이션 문제, 완전 탐색 등이 포함됩니다.

 

알고리즘 대회를 볼 때 2차원 공간에서의 이동 관련 문제를 많이 접했습니다. 

시뮬레이션 문제의 N * N 공간에서의 이동을 할 떄 코드입니다. 

n = int(input())  ## N*N 을 위한 값 n 입력 받음
x, y = 1, 1  ## 처음 위치를 정하기
plans = input().split()  ## 입력 값 공백 기준 나누기

dx = [0, 0, -1, 1]    ## x, y 위치 이동을 위한 리스트 작성 
dy = [-1, 1, 0, 0]    ## (0, 1) 면 (1, 2) 이동 y축으로 이동
move_type = ['L', 'R', 'UP', 'DOWN']  ## 입력 받은 명령 리스트

for plan in plans:   ## 입력받은 move_type 하나씩 확인
	for i in range(len(move_type)): ## move_type에서 입력값 확인
		if plan == move_type[i]:    ## 값에 따른 좌표 옮기기
        	nx = x + dx[i]
            	ny = y + dy[i]
    	if nx < 1 or ny < 1 or nx > n or ny > y: ##공간을 벗어나면 무시
    		continue
    x, y = nx, ny   ## 이동한 후 값 저장 

 

그다음 완전 탐색 문제입니다.

3이 포함된 시간의 모든 경우의 수 문제

h = int(input())

count = 0
for i in range(h):   ## 시간
	for j in range(60):  ## 분
    		for k in range(60):  ## 초
        		if '3' in str(i) + str(j) + str(k): ## 3이 포함되면 count + 1
            			count += 1

'알고리즘' 카테고리의 다른 글

(코드업) 6098 성실한 개미 - 파이썬  (0) 2022.01.20
파이썬 스택 자료구조  (0) 2021.02.10
그리디 알고리즘 정리  (0) 2021.01.22
람다 표현식 정리  (0) 2021.01.19
리스트 컴프리헨션 정리  (0) 2021.01.19

댓글