안녕하세요!
오늘은 파이썬 문제 풀이 연습하도록 하겠습니다.
백준 문제 풀이
1. 공 넣기
N, M = map(int, input().split())
bask = [0] * N # bask에 N개를 입력한 만큼의 0으로 채워진 리스트 생성
for _ in range(M):
i, j, k = map(int, input().split())
for x in range(i-1, j):
bask[x] = k
print(*bask)
2. 공 바꾸기
N, M = map(int, input().split())
bask = list(range(1, N + 1))
# N개의 길이 만큼의 list를 만든다. N + 1 뜻은 인덱스가 0부터 시작하기 때문이다.
# M번 반복하면서 교환할 반복문을 만든다.
for _ in range(M):
i, j = map(int, input().split())
idx1 = i - 1
idx2 = j - 1
bask[idx2], bask[idx1] = bask[idx1], bask[idx2]
print(*bask)

i 와 j는 bask의 인덱스 위치를 표시하는 것과 같다.
3. 입력되지 않은 숫자 출력하기
std1 = [False] * 31 # std1에 False의 리스트를 31칸 만든다.
for _ in range(28): # 28번을 반복할 for문을 만든다.
n = int(input())
std1[n] = True # 입력을 받은 수는 True로 덮어쓴다.
for i in range(1, 31):
if std1[i] == False:
# std1[i]일 때, 즉 30까지 반복하는 숫자 중,
# 덮어씌여진 True와 일치하지 않은 False 값이 출력된다.
print(i)
4. 총 입력 정수에 42를 나눠서 나머지(len 활용)
s1 = set() # set타입은 중복된 값을 허용하지 않음
for _ in range(10):
a = int(input())
s1.add(a % 42) # add메서드를 사용하여 set에 데이터를 추가한다.
print(len(s1))
5. 슬라이싱 활용 문제
N, M = map(int, input().split())
bask = list(range(1, N + 1))
for _ in range(M):
i, j = map(int, input().split())
# index을 통해 자리 바꿈 필요, i-1부터 j까지의 인덱스를 [::-1]뒤집어서 덮어씌운다.
bask[i-1:j] = bask[i-1:j][::-1]
print(*bask)

Code up 사이트 문제 풀이
어려워하는 절 도와주기 위해 같이 공부하는 천사님이 알려준 사이트 입니다.
쉬운 문제 부터 단계 별로 있어서 따로 풀고 있습니다. 오늘은 26번까지 풀었습니다.
CodeUp
☆ 파이썬 다운로드 : 파이썬3 ☆ 무료 C언어 IDE : Code::blocks DEV C++ ☆ 추천 온라인 IDE : C C++11 Python3 Java ☆ 채점 가능 언어 : C, C++, JAVA, Python 3.8, PyPy3 ★ C++로 제출시 void main()을 사
codeup.kr

'3. 자습 & 메모(실전, 실습, 프로젝트) > 3-1 문제 해석' 카테고리의 다른 글
| Python | 문제 풀이 및 해석(4) (0) | 2025.11.09 |
|---|---|
| Python | 문제 풀이 및 해석(3) (0) | 2025.11.08 |
| Python | 문제 풀이(2) (0) | 2025.10.26 |