본문 바로가기
Programming/Python

첫 Python 코딩 테스트 5일 준비하면서 알게 된 것들

by 문찬웅 2026. 2. 7.

들어가며

코딩테스트를 준비하면서 "당연히 알고 있었어야 했는데" 하고 뒤늦게 깨달은 Python 문법과 팁들을 정리했습니다. 같은 고민을 하는 분들께 도움이 되길 바랍니다.


1. 기본 문법에서 놓치기 쉬운 것들

소숫점 처리

  • round(n, count)로 반올림하는 건 알았지만, :.3f 같은 형식 지정자는 f-string의 {} 안이나 format()에서만 사용 가능하다는 걸 몰랐습니다.

조건문 구조

  • if-elif-else에서 else가 필수라고 생각했는데, 사실 선택사항입니다.

역방향 순회

  • range(start, end, step)의 step에 음수를 주면 역방향도 가능합니다.
  • 예: range(5, 0, -1) → 5, 4, 3, 2, 1

올림 계산 팁

  • math.ceil() 없이도 올림 가능: (remain + speed - 1) // speed
  • 음수 내림으로 올림 효과: -((93 - 100) // speed)

2. 리스트 다루기의 핵심

리스트 컴프리헨션

처음엔 어렵게 느껴졌지만, 익숙해지면 코드가 훨씬 간결해집니다.

# 기본 구조
new_list = [표현식 for 변수 in 시퀀스]

# 예: 모든 요소 2배로
arr = [1, 2, 3, 4]
new_arr = [x * 2 for x in arr]  # [2, 4, 6, 8]

# 0으로 초기화
zeros = [0 for i in range(10)]

2차원 배열 입력받기

  • 리스트 컴프리헨션으로 2차원 배열 받을 때는 list()로 감싸야 합니다.
arr = [list(map(int, input().split())) for _ in range(n)]
  • 감싸지 않으면 map 객체의 리스트가 됩니다.

유용한 메서드들

  • sorted() vs list.sort(): 전자는 새 리스트 반환(원본 유지), 후자는 원본 수정
  • pop(인덱스): 요소 인출하며 제거 (기본값은 마지막 요소)
  • arr[::-1]: 배열을 뒤에서부터 순회

3. 입력 처리 최적화

빠른 입력

  • 입력 길이가 길 때는 sys.stdin.readline() 사용
  • input() 대신 사용하면 시간 단축 가능

한 줄로 리스트 입력받기

list(map(자료형, input().split()))

4. 문자열 처리

  • upper(), lower(): 대/소문자 변환
  • strip(): 공백 제거
  • ''.join(리스트): 리스트를 문자열로 결합
  • in 연산자: 포함 관계 확인

5. 유용한 내장 함수

zip()

  • 두 리스트를 쌍으로 묶어줍니다.
a = [1, 2, 3]
b = [4, 5, 6]
list(zip(a, b))  # [(1, 4), (2, 5), (3, 6)]

map()

  • 리스트 일괄 형변환에 필수
map(int, ['1', '2', '3'])

 

마치며

이 내용들은 대부분 "알고는 있었지만 실전에서 써본 적 없던" 것들이었습니다. 특히 리스트 컴프리헨션과 입력 최적화는 코딩테스트에서 시간을 크게 절약해줍니다. 여러분의 코테 준비에도 도움이 되길 바랍니다!

'Programming > Python' 카테고리의 다른 글

Python - 변수와 자료형  (4) 2024.11.14