구현 유형 알고리즘은 풀이를 생각해내기는 쉽지만 코드로 작성할 시 어려움을 겪는 알고리즘입니다.
시뮬레이션 문제, 완전 탐색 등이 포함됩니다.
알고리즘 대회를 볼 때 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 |
댓글