본문 바로가기

Code Up

[Code Up] - Python 기초 100제, 6092번 풀이 - 티스토리

 

 

 

문제 설명

 

1 ~ 23번까지 출석번호가 존재하고, n번 출석을 무작위로 부를 때 각 번호별로 호명된 횟수를 출력하자

 

 

 

풀이

 

n = int(input())
a = input().split()

for i in range(n):
    a[i] = int(a[i])

arr = [0] * 24

for i in range(1, 24):
    for j in range(0, n):
        if (i == a[j]):
            arr[i] += 1

for i in range(1, 24):
    print(arr[i], end=' ')

 

 

 

해설

 

입력받은 번호들을 a 배열에 정수형으로 저장 후 arr 배열을 0으로 0 ~ 23까지 초기화 해준다

이중 반복문을 통해 1 ~ 23까지 숫자를 a배열과 전부 하나씩 비교하며 a배열과 같은 숫자가 있을 때 해당 숫자의 인덱스에 해당하는 arr배열을 1씩 증가시킨다

arr배열을 출력한다

 

 

 

다른 분 풀이

 

stlist = list()

for i in range(24):
    stlist.append(0)
    
num = int(input())
numlist = input().split()

for i in range(num):
    stlist[int(numlist[i])] += 1
    
for i in range(1, len(stlist)):
    print(stlist[i], end=' ')

 

 

입력 받은 숫자들을 미리 초기화 해둔 배열의 인덱스로 넣어서 num번 반복하며 1씩 증가시킨다

 

 

** stlist를 list함수로 list로 선언 해준 후 append함수를 이용해 0으로 초기화 했다