코딩 테스트/파이썬

[백준 파이썬] 단계별로 풀어보기 - Lv4. 1차원 배열

HHRR 2023. 5. 8. 05:52

# 10807 개수 세기

N=int(input())
x = list(map(int,input().split()))
v = int(input())

print(x.count(v))

- x.count(v)로 x리스트 안에 v가 몇 개 들어가있는지 확인가능

 

# 10871 X보다 작은 수

N,X = map(int,input().split())
A = list(map(int, input().split()))

for i in range(N) :
    if A[i]<X :
        print(A[i], end=" ")

# 10818 최소, 최대

import math
N = int(input())
A = list(map(int, input().split()))

print(min(A),max(A))

- 최소 min(), 최대 max()

 

# 2562 최댓값

A = [int(input()) for _ in range (9)]

print(max(A))
print(A.index(max(A))+1)

- 리스트 A에 9개 값 넣기

- A에서 최댓값이 몇 번째 수인지 출력 : A.index(max(A))+1

 

# 10810 공 넣기

#i번 바구니부터 j번 바구니까지ㅔ k번 번호가 적혀있는 공을 넣음
#1번바구니부터 N번바구니에 들어있는 공의 번호를 공백으로 구분해 출력

N, M = map(int, input().split()) #입력값 공백 기준으로 분리하여 각 변수에 넣음
A = [0]*N #0으로 초기화(안하면 오류뜸)

for _ in range (M) :
    i, j, k = map(int, input().split())
    for x in range(i, j+1, 1) :
        A[x-1] = k

for y in range (N) :
    print(A[y],end=' ')

- 배열 미리 0으로 초기화 해줘야 오류 안 뜸

- 변수 세 개 한번에 입력 받기 : i, j, k = map(int, input().split())

 

# 10813 공 바꾸기

#바구니 1번~N번
#바구니에 공 1개씩, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공 들어있음
#M번 공 바꾸기
#공 바꿀 바구니 2개 선택후 두 바구니에 들어있는 공을 서로 교환

N, M = map(int,input().split())

A = [0]*N
for i in range(N) :
    A[i] = i+1

for _ in range (M) :
    i, j = map(int,input().split())
    tmp = A[i-1]
    A[i-1] = A[j-1]
    A[j-1] = tmp

for x in range (N) :
    print(A[x],end=' ')

- 공 바꿀 때 tmp 변수 사용

 

# 5597 과제 안 내신 분..?

A = [i for i in range(1,31)] #리스트에 값 순서대로 집어넣기

for _ in range(28) :
    B = int(input()) #입력값
    A.remove(B) #소거!! 

print(min(A))
print(max(A))

- 입력값 제외한 값 찾기 : remove사용

- A.remove(B) : 리스트 A에서 B값 제외하기

 

# 3052 나머지

#수 10개 입력 -> 42로 나눈 나머지
#서로 다른 값 몇 개?
A=[0]*10
for i in range(10) :
    x = int(input())
    A[i] = (x % 42)

B = set(A)
print(len(B))

- 리스트 입력 받고 리스트를 집합으로 바꿔서 중복되는 수 제거

- len(B) = 서로 다른 수의 개수

 

# 10811 바구니

#바구니 N개 1~N번
#M번 바구니 순서를 역순으로
#순서를 역순으로 만들 범위 정하고 그 범위에 들어있는 바구니의 순서를 역순으로
N, M = map(int,input().split())
A = [i+1 for i in range (N)]

for _ in range(M) :
    i, j = map(int,input().split())
    tmp = A[i-1:j] 
    tmp.reverse()
    A[i-1:j] = tmp

for i in range(N):
    print(A[i],end=' ')

- 역순으로 만들기 : tmp.reverse()

 

#1546 평균

#점수 최댓값 M
#모든 점수를 점수/M*100

N = int(input()) #시험 본 과목 개수

A = list(map(int,input().split())) #점수
M = max(A)

B=[]
for i in A : #리스트 A 안의 수
    B.append(i/M*100) #새로운 점수 생성

res = sum(B)/N
print(res)

- for i in A : 리스트 A안의 수(i)