백준 4단계 - Python

jhyngu·2023년 1월 12일
0

백준

목록 보기
4/12

4단계 - 반복문

10897 개수 세기

코드

n = int(input())
a = list(map(int,input().split()))
v = int(input())
count = 0

for i in range(n):
  if a[i] == v:
    count += 1
print(count)

해설

반복문을 사용해서 a[0] ~ a[n-1] 까지 입력받은 v값과 비교해서 같은 수 가 있으면 count 값을 +1 해준다.

10871

코드

n, x = map(int,input().split())
a = list(map(int, input().split()))
answer = []
for i in range(n):
  if a[i] < x:
    print(a[i])

해설

a[i]와 x를 비교해서 a[i] 값이 더 작으면 출력하는데, 이를 a[n-1]까지 반복한다.

10818 최소, 최대

문제

코드

n = int(input())
a = list(map(int,input().split()))
min = a[0]
max = a[0]
for i in range(1,n):
  if a[i] < min:
    min = a[i]
  if a[i] > max:
    max = a[i]
print(min, max)

해설

for문 안에 if문을 2개를 만든다. 하나는 최소값을 구하고 나머지 하나는 최대값을 구하는 if문이다. 최소값과 최대값은 각각 min, max에 저장해서 출력한다.

2562 최댓값

코드

a = [int(input()) for _ in range(9)]
print(max(a))
print(a.index(max(a)) + 1)

해설

입력받을 때 한 줄로 list comprehension 표현식으로 작성했다. for문으로도 작성할 수 있지만 복잡하지 않은 경우에는 list comprehension으로 작성하는게 코드를 짧게 단축할 수 있어서 용이하다.
comprehension 표현식은 [실행 문장 for 변수 iterable 자료형] 형태로 작성한다.
그리고 max함수를 사용해서 최댓값을 구하고 index함수로 위치를 찾는데, index는 0부터 시작하므로 +1을 해준다.

5597 과제 안 내신 분..?

코드

a = [i for i in range(1,31)]  # a = 1~30

for i in range(28):
  b = int(input())
  a.remove(b)

print(min(a))
print(max(a))

해설

list comprehension 표현식으로 배열 a에 1~30까지 저장했다. for문 써서 28개의 수를 입력받는거 까지는 생각해냈는데 입력받은 수들을 어떻게 a에서 뺄지 고민하다가 구글링하니깐 나온게 remove()함수다. remove()함수를 써서 입력받은 수를 바로 배열a에서 빼내고 남은 a에서 작은 순서로 출력하기위해 min()함수와 max()함수를 사용했다.

0개의 댓글