10807번 : 개수 세기

문제 해결 접근법
1. list.count() - 리스트에서 특정 요소 개수 세기
list.count() 메서드를 사용하면 리스트에서 특정 요소가 몇 개인지 쉽게 구할 수 있습니다.
답 :
# 첫 번째 줄: 정수 개수 N
N = int(input())
# 두 번째 줄: N개의 정수 입력받기
numbers = list(map(int, input().split()))
# 세 번째 줄: 찾고자 하는 정수 v
v = int(input())
# 리스트에서 v의 개수 세기
print(numbers.count(v))
10871번: X보다 작은 수

나의 문제 해결법:
N,X,A를 받고 for 반복문을 통해서 수열 A속 요소들과 X를 비교하여 더 작은 것들만 result라는 리스트에 넣어서 출력하기.
그런데 이 때 print(result) 하면 [1, 4 ,2, 3] 이런식으로 리스트형식으로 나오는데 정답에서는 그냥 1, 4, 2, 3 을 요구한다. 그래서 틀렸었는데 여기서 사용가능한 잡기술이 '언패킹(unpacking)'

*을 붙이면 요소들만 꺼내서 출력해준다.
답
N, X = map(int,input().split())
A = list(map(int,input().split()))
result = []
for i in A:
if i < X:
result.append(i)
print(*result)
2562번 : 최댓값

9번 반복문을 통해 정수들을 받고 list에 append 한 뒤 max()를 써서 최댓값을 찾고
list.index() 를 통해서 index 를 찾으면 되는 문제
나의 답
li = []
for _ in range(9):
a = int(input())
li.append(a)
print(max(li))
print(li.index(max(li))+1)
10813번: 공 바꾸기
별 어려울 건 없고 알아둬야할 것 같은 포인트
파이썬에서의 값 교환법!
변수 두개로 간단하게 값을 교환 하는 법
a,b = b,a
5597번: 과제 안 내신 분?

나의 답 :
li = []
for i in range(1,31): #리스트에 1~30 담기
li.append(i)
for _ in range(28):
present = int(input())
li.remove(present) #정수 값 받아서 리스트에서 해당 정수 값 제거
print(*li) #unpacking 이용하여 프린트
로 구현을 해보았다.
list.remove()란?
목적: 리스트에서 특정 값을 제거합니다.
동작: 리스트에 있는 첫 번째로 등장하는 해당 값만 제거합니다.
더 나은 답안이 있을 것 같아 gpt에게 물어보았다.

집합을 활용하면 더 괜찮게 풀 수 있을 것 같다. 일단 이런게 있다 정도만.
3052번: 나머지

나의 해결방법 :
li = [0]*42 # 길이가 42인 리스트를 0으로 초기화
for _ in range(10):
number = int(input()) #10개의 정수들을 입력받고
remain = number%42 #나머지를 구해서 변수에 저장
li[remain-1] += 1 #0으로 초기화 되었었던 리스트에 나머지의 자리에 삽입
count = 0
for i in li:
if i != 0:
count += 1 #리스트에서 0이 아닌 값들의 개수를 count의 저장 후 프린트
print(count)
긴 한데.. 더 나은 방법이 있을 것 같다.

라고 하네
set 이제 슬슬 익숙해져야 하겠다.
10811번: 바구니 뒤집기
이 문제는 어떻게 손도 대지 못했다.

# 입력 받기
N, M = map(int, input().split())
# 바구니 초기화: 1부터 N까지의 숫자
baskets = list(range(1, N + 1))
# M번 뒤집기 작업 수행
for _ in range(M):
i, j = map(int, input().split())
baskets[i-1:j] = baskets[i-1:j][::-1] # 구간을 뒤집기
# 결과 출력
print(*baskets)
이 문제를 풀기 위해 필요한 이론
리스트 슬라이싱

리스트 뒤집기

리스트의 특정 구간 뒤집기
