Python

Python 복습(1)

ezoiv 2026. 5. 14. 23:46

입출력과 자료형

입출력 input()

#정수 하나 받기
n = int(input())//정수 하나 받기

#공백으로 구분된 여러 숫자
data = list(map(int, input().split()))

#출력
print(data)
#or
print(f"정답은 {result}입니다")

 

map(함수, 반복 가능한 객체)

: 두 번째 인자로 들어온 리스트나 튜플의 모든 요소에 첫 번째 인자로 넣은 함수를 일괄 적용해 주는 함수

input().split()을 하면 결과는 항상 문자열 리스트가 됨
(예: ["1", "2", "3"])
계산을 할 때 정수(int)가 필요하므로 이때 map을 써서 한꺼번에 형변환

 

strip()

: 문자열의 양 끝에 있는 공백, 탭, 줄바꿈 문자를 모두 지워줌

  • map(int, input().split()) -> strip() 안 써도 됨
  • input().split() -> strip() 안 써도 됨
  • sys.stdin.readline() -> strip()을 습관적으로 붙이는 것이 좋음

 

- 작동 원리

map(int, ["1", "2", "3"])

 

  • "1"을 꺼내서 int("1") 실행 → 1
  • "2"를 꺼내서 int("2") 실행 → 2
  • "3"을 꺼내서 int("3") 실행 → 3
  • 이 결과들을 묶어서 돌려줌

 

 

주요 자료형

#리스트 (List): 데이터를 순서대로 저장
arr = [1,2,3]
arr.append(4) #추가
arr.pop() #마지막 요소 제거

#튜플 (Tuple): 데이터를 고정된 상태로 저장
t = (1, 2, 3)

# t.append(4)  -> 에러 발생 (추가 불가)
# t.pop()      -> 에러 발생 (제거 불가)
# t[0] = 10    -> 에러 발생 (수정 불가)

# 단, 조회나 슬라이싱은 가능
print(t[0])    # 1
print(t[1:3])  # (2, 3)

#딕셔너리 (Dictionary): Key-Value 쌍으로 저장 - 검색 속도 매우 빠름
m = {"apple":5, "banana": 3}

#집합 (Set): 중복을 허용하지 않음. 중복 제거 시 유용
s = set([1, 2, 2, 3])
#-> {1, 2, 3}

 

 


제어문 (조건문과 반복문)

 

조건문 (if, elif, else)

score = 85
if score >= 90:
    print("A")
elif score >= 80:
    print("B")
else:
    print("C")

 

반복문 (for, while)

알고리즘 문제에서 가장 많이 쓰는 것은 for문과 range()의 조합

- 기본 루프: range(시작, 끝+1)

for i in range(1, 6): # 1부터 5까지 반복
    print(i)

 

- 리스트 순회

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
	print(fruit)
    
# 인덱스와 값을 동시에 (enumerate): 발표할 때 "몇 번째 요소가 무엇이다"라고 설명하기 좋음
    
for idx, val in enumerate(fruits):
	print(f"{idx}번 과일은 {val}입니다.")

''' 3. 리스트 컴프리헨션 (List Comprehension) ★중요
반복문을 한 줄로 줄여 리스트를 만듦, 시간 단축에 매우 유리'''

# 일반 코드:
arr = []
for i in range(5):
    arr.append(i * 2)

# 컴프리헨션:
arr = [i * 2 for i in range(5)] # [0, 2, 4, 6, 8]

필수 내장 함수 & 라이브러리

자주 쓰는 내장 함수

별도의 import 없이 바로 쓸 수 있음

  • sum(arr): 리스트의 모든 요소 합계
  • min(arr), max(arr): 최솟값, 최댓값 찾기
  • sorted(arr): 리스트 정렬 (오름차순이 기본, reverse=True면 내림차순)
  • len(arr): 리스트나 문자열의 길이

정렬(Sort)

arr = [3, 1, 4, 1, 5]
arr.sort() # 원본 리스트를 바로 정렬
new_arr = sorted(arr) # 정렬된 새로운 리스트를 반환

 

필수 라이브러리

  • collections.deque(큐/덱)
    리스트의 pop(0)은 느리지만, deque의 popleft()는 매우 빠름
    BFS 알고리즘의 필수품

from collections import deque
queue = deque([1, 2, 3])
queue.append(4)
queue.popleft() # 1을 제거
  • itertools (순열과 조합)
    "중복 없이 3개를 뽑는 경우의 수" 같은 문제를 풀 때 직접 구현할 필요가 없음

from itertools import permutations, combinations
data = ['A', 'B', 'C']
print(list(combinations(data, 2))) # [('A', 'B'), ('A', 'C'), ('B', 'C')]
'''
math (수학):
최대공약수(gcd)나 팩토리얼 등을 구할 때 씁니다.

import math
print(math.gcd(21, 14)) # 7
'''

슬라이싱 & 문자열 메서드 

슬라이싱

리스트나 문자열의 일부분을 [시작:끝:증감] 형식으로 잘라내는 기능

  • arr[1:4]: 인덱스 1부터 3까지 가져옴
  • arr[:3]: 처음부터 인덱스 2까지 가져옴
  • arr[2:]: 인덱스 2부터 끝까지 가져옴
  • arr[::-1]: 리스트나 문자열을 통째로 뒤집음

문자열 메서드

  • .split(): 문자열을 공백이나 특정 문자로 나눔
  • "".join(list): 리스트에 담긴 문자열들을 하나로 합침 (예: "-".join(['010', '1234', '5678']) → "010-1234-5678")
  • .replace("A", "B"): A를 B로 바꿈
  • .upper(), .lower(): 대소문자 변환

함수 정의(def)

# 함수 정의
def add_numbers(a, b):
    result = a + b
    return result

# 함수 호출
print(add_numbers(3, 5)) # 8

'Python' 카테고리의 다른 글

알고리즘  (0) 2026.06.30
Python 복습(2)  (0) 2026.05.14
Python - list  (0) 2026.05.14