프로그래밍 문제 풀이/코드업(파이썬)

코드업[CodeUp] Python 기초 100제 [6092번]

태은코딩 2024. 1. 24. 09:21

6092 : [기초-리스트] 이상한 출석 번호 부르기1(설명)(py)

문제설명
정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다.

선생님은 출석부를 보고 번호를 부르는데,
학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부른다.

그리고 얼굴과 이름이 잘 기억되지 않는 학생들은 번호를 여러 번 불러
이름과 얼굴을 빨리 익히려고 하는 것이다.

출석 번호를 n번 무작위로 불렀을 때, 각 번호(1 ~ 23)가 불린 횟수를 각각 출력해보자.

 

입력값
첫 번째 줄에 출석 번호를 부른 횟수인 정수 n이 입력된다. (1 ~ 10000)
두 번째 줄에는 무작위로 부른 n개의 번호(1 ~ 23)가 공백을 두고 순서대로 입력된다.
출력값
1번부터 번호가 불린 횟수를 순서대로 공백으로 구분하여 한 줄로 출력한다.

 

입력 예시
10
1 3 2 2 5 6 7 4 5 9
출력 예시
1 2 1 1 2 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0

 

정답 및 가능한 정답

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

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

d = []
for i in range(24) :
  d.append(0)

for i in range(n) :
  d[a[i]] += 1

for i in range(1, 24) :
  print(d[i], end=' ')
n = int(input())
a = list(map(int,input().split()))

d = list()
for i in range(24) :
  d.append(0)

for i in range(n) :
  d[a[i]] += 1

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

 

해설

먼저 출석부른 횟수 n을 int자료형으로 입력받는다.

그 다음 a= input().split()으로 무작위로 부른 n개의 번호를 공백을 두고 입력받고 
for문으로 a[i]=int(a[i])로 int자료형으로 요소들을 바꾸던가
list(map(int, input().split()))으로 입력받으면서 바로 요소들을 int자료형으로 입력할 수도 있다.

d=[]나 d=list()로 빈 리스트 한개를 생성하고
범위를 24인 for문으로 0부터 23번호까지 d.append(0)한다.

a의 각 요소 숫자에 해당하는 d의 인덱스에 1을 추가해야 하므로
for문으로 d[a[i]] += 1을 한다. 

그리고 1부터 23까지 출력하기 위해 
range(1,24)범위로 잡은 for문으로 출력한다.
공백으로 구분하여 한줄로 출력해야하니 print(d[i], end=" ")