개발 공부/파이썬

[TIL] 파이썬으로 백준 시작하기

김불 2025. 3. 14. 20:27

 

1.

사용자에게 값을 입력받을 때는 sys.stdin.readline() 을 이용한다.

 

sys.stdin.readline() raw_input() > input()

연산 속도는 이와 같다. 왼쪽으로 갈수록 더 빠르다고 한다.

 

 

 

2.

sys 를 import 해야 한다.

strip() 과 split() 메서드는 필수다.

기본 메서드를 아직 전부 몰라서 꾸준히 문제를 풀면 좋을 것 같다.

import sys

# 앞 뒤 공백을 삭제한다.
sys.stdin.readline().strip()

# 공백을 기준으로 나뉜다. = 한줄에 여러 숫자 입력받을 때 쓰임
sys.stdin.readline().split()

# 입력한 모든 줄을 각 리스트로 반환 
sys.stdin.readlines()  #개행문자까지 포함하여 저장 , 필요시 split() 붙여야함
sys.stdin.read().splitlines() #개행문자 없이 각 줄을 리스트에 저장

 

 

 

3.

문자열 포매팅 f-string

바뀌는 부분을 f"{요기}" < 이런식으로 사용할 수 있다.

name = "Alice"
age = 25

print(f"이름: {name}, 나이: {age}")

 

 

 

4. 

제너레이터 표현식 (Generator Expression)과 리스트 컴프리헨션 (List Comprehension)

 

count_high = 0  # 평균 초과 학생 수 초기화

for score in scores:  # scores 리스트의 각 값(score)을 순회
    if score > average:  # 평균보다 크면
        count_high += 1

 

위의 for문을 요약해서 제너레이터 표현식으로 아래와 같이 짧게 쓸 수 있다.

더 빠르고 메모리를 절약할 수 있다.

count_high = sum(1 for score in scores if score > average)

 

리스트 컴프리헨션은 비슷하게 생겼는데 for문을 돌리고 리스트에 넣고 싶으면 쓰면 된다.

above_avg_list = [1 for score in scores if score > average]

 


너무 진지하니까 고전짤로 마무리..!