개발 공부/파이썬
[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]
너무 진지하니까 고전짤로 마무리..!