이것이 코딩테스트다 with 파이썬 - Chp4. 구현_1. 아이디어를 코드로 바꾸는 구현

1. 피지컬로 승부하기

  • 구현 = '머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정'
  • 흔히 문제 해결 분야에서 구현 유형의 문제는 '풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제'를 의미
  • 완전 탐색 = '모든 경우의 수를 주저 없이 다 계산하는 해결 방법'
  • 시뮬레이션 = '문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행'

2. 구현 시 고려해야 할 메모리 제약 사항

  • 파이썬에선 프로그래머가 직접 자료형을 지정할 필요가 없으며 매우 큰 수의 연산 또한 기본으로 지원.

1) 파이썬에서 리스트 크기

  • int 자료형 데이터의 개수에 따른 메모리 사용량
데이터의 개수(리스트의 길이메모리 사용량
1,000약 4KB
1,000,000약 4MB
10,000,000약 40MB
  • 일반적인 코딩 테스트 수준에선 메모리 사용량 제한보다 더 적은 크기의 메모리를 사용해야 한다는 점 정도만 기억하면 됨.

3. 예제 4-1_상하좌우

n = int(input())
x, y = (1, 1)
plans = input().split()

# L, R, U, D에 따른 이동 방향
dx = [0, 0, -1, 1]
dy = [-1, 1, 0, 0]
move_types = ['L', 'R', 'U', 'D']

for plan in plans:
    for i in range(len(move_types)):
        if plan == move_types[i]:
            nx = x + dx[i]
            ny = y + dy[i]
    if nx < 1 or ny < 1 or nx > n or ny > n:
        continue
    x, y = nx, ny
print(x, y)

4. 예제 4-2_시각

h = int(input())
count = 0
for i in range(h + 1):
	for j in range(60):
    	for k in range(60):
        	# 매 시각 안에 '3'이 포함되어 있다면 카운트 증가
            if '3' in str(i) + str(j) + str(k):
            	count += 1
print(count)

좋은 웹페이지 즐겨찾기