백준 문제를 풀다 보니 아는 것의 한계를 느꼈다...
브론즈 레벨의 문제부터 풀고 있어서 간단한 파이썬 문법들로만 코드를 작성해도 문제가 없었지만
문제 순위가 올라갈수록 내가 아는 얕은 지식으로는 한계가 있다는 걸 느끼고
앞으로 사용할 예정(?)인 친구들을 정리를 해두고 보려 한다!
왜? 여러 반복문 패턴을 활용해야 하냐면
코드를 더 효율적으로 작성하기 위해서!
아래에 예시와 설명을 간단하게 작성해 놨으니 슥슥 내리면서 봐보도록 하자.
1. for i in range(n):
- 0부터 n-1까지의 정수를 순서대로 반복
- range(5)는 0부터 4까지의 값을 생성, i는 이 값들을 순서대로 받아서 각 반복에서 출력
for i in range(5):
print(i)
#출력하면
0
1
2
3
4
2. for char in S (문자열 순회):
- 문자열의 각 문자를 순서대로 순회
- 문자열 S의 각 문자를 하나씩 char에 할당하며, 순서대로 문자를 출력
S = "Hello"
for char in S:
print(char)
# 출력하면
H
e
l
l
o
3. for item in list (리스트 순회):
- 리스트의 각 요소를 순서대로 순회
- 리스트 my_list의 각 요소를 item에 할당하며, 순서대로 출력
my_list = [10, 20, 30, 40]
for item in my_list:
print(item)
# 출력하면
10
20
30
40
4. for key in dict (딕셔너리 순회):
- 딕셔너리의 키들을 순서대로 순회
- 딕셔너리 my_dict의 키들을 하나씩 순회하며, key에 할당된 값으로 해당 키와 그에 대응하는 값을 출력
my_dict = {'a': 1, 'b': 2, 'c': 3}
for key in my_dict:
print(key, my_dict[key])
# 출력하면
a 1
b 2
c 3
5. for key, value in dict.items() (딕셔너리 키-값 쌍 순회):
- 딕셔너리의 (키, 값) 쌍을 동시에 순회
- dict.items()는 딕셔너리의 (키, 값) 쌍을 반환
- key, value는 각 쌍의 키와 값으로 할당
my_dict = {'a': 1, 'b': 2, 'c': 3}
for key, value in my_dict.items():
print(key, value)
# 출력하면
a 1
b 2
c 3
6. for index, item in enumerate(list) (리스트 순회와 인덱스 함께 사용):
- 리스트를 순회하면서 인덱스도 함께 사용할 수 있다
- enumerate()는 리스트의 각 요소와 해당 요소의 인덱스를 함께 반환
- 이 방식으로 인덱스와 값을 동시에 사용할 수 있다
my_list = ['a', 'b', 'c']
for index, item in enumerate(my_list):
print(index, item)
# 출력하면
0 a
1 b
2 c
7. for item in set (집합 순회):
- 집합의 각 요소를 순서대로 순회. 집합은 순서가 없는 자료형이므로, 순회 순서는 보장되지 않음
- 집합 my_set의 각 요소를 순서대로 출력. 집합은 순서가 없기 때문에 출력 순서는 임의일 수 있음
my_set = {1, 2, 3}
for item in my_set:
print(item)
# 출력하면
1
2
3
8. for item in zip(list1, list2) (여러 리스트를 동시에 순회):
- 두 개 이상의 리스트를 동시에 순회할 때 사용
- zip()은 여러 리스트를 병렬로 묶어서 각 요소를 동시에 순회
- num과 letter는 각각 list1과 list2의 요소를 받음
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
for num, letter in zip(list1, list2):
print(num, letter)
# 출력하면
1 a
2 b
3 c
9. List Comprehension (리스트 컴프리헨션) (반복문을 한 줄로):
- 리스트를 한 줄의 반복문을 통해 생성할 때 사용
- 리스트 컴프리헨션은 간결하게 반복문을 작성하여 리스트를 생성할 수 있는 방법
- 위 예시에서는 range(5)의 값을 제곱하여 리스트를 생성
squares = [x * x for x in range(5)]
print(squares)
# 출력하면
[0, 1, 4, 9, 16]
일단 이 정도만 적어두고 또 생기면 추가해야겠다
잊어버릴 만하면 들어와서 쓱 훑어봐야지

'공부 노트 > 파이썬' 카테고리의 다른 글
[파이썬] 딕셔너리로 종류별 개수 세기(쉽게 이해 가능) (3) | 2025.04.18 |
---|---|
BFS(너비 우선 탐색) 알고리즘 (feat. 최단경로) (1) | 2024.09.10 |
파이썬 리스트 슬라이싱 : 데이터 조작의 핵심 (0) | 2023.09.21 |
파이썬 리스트에서 원소 삭제하기 (0) | 2023.09.21 |
파이썬의 append() 메서드: 리스트에 요소 추가하기 (0) | 2023.09.20 |