정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다.
선생님은 출석부를 보고 번호를 부르는데, 학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부른다.
그리고 얼굴과 이름이 잘 기억되지 않는 학생들은 번호를 여러 번 불러 이름과 얼굴을 빨리 익히려고 하는 것이다.
출석 번호를 n번 무작위로 불렀을 때, 각 번호(1 ~ 23)가 불린 횟수를 각각 출력해보자.
입력
첫 번째 줄에 출석 번호를 부른 횟수인 정수 n이 입력된다. (1 ~ 10000)
두 번째 줄에는 무작위로 부른 n개의 번호(1 ~ 23)가 공백을 두고 순서대로 입력된다.
10
1 3 2 2 5 6 7 4 5 9
출력
1번부터 번호가 불린 횟수를 순서대로 공백으로 구분하여 한 줄로 출력한다.
1 2 1 1 2 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
<풀이>
더보기
내가 쓴 풀이
count = int(input()) # 출석 번호 부른 횟수
input_number = list(map(int,input().split())) # 무작위로 부른 n개의 번호
result = []
for i in range(23):
result.append(0)
for i in input_number:
result[i-1] += 1
print(*result)
처음 문제를 읽었을 때 무슨 말인지 이해를 못했었고, 2번 읽으며 입력과 출력의 형태를 보고 문제를 이해할 수 있었다. 하지만 문제를 어떻게 풀어야 할지 감이 오지 않았고, 강의를 봐야겠다고 생각했다.
강의에서 어떻게 접근해야 하는지를 알려주자 왠지 나 혼자 힘으로도 풀 수 있을 것 같다는 생각이 들어서 강의를 멈추고 혼자 풀어보았다.
강의 풀이
n = int(input())
rand = map(int, input().split())
student = [0 for _ in range(23)]
for r in rand:
student[r-1] += 1
print( * student )
<풀이 비교>
map을 이용하면 리스트 형태로 입력받는다는 것을 잊고 있었다 ㅋㅋㅋㅋ
그리고 나는 빈 리스트를 생성한 후 반복문을 통해 하나씩 추가했는데 강의에서는 리스트 컴프리헨션을 통해 한번에 해결했다.
로직은 잘 짠 것 같아서 만족스럽다😚
'Python > CodeUp' 카테고리의 다른 글
코드업 기초 100제 95번 - 이상한 출석 번호 부르기3 (0) | 2021.11.26 |
---|---|
코드업 기초 100제 94번 - 이상한 출석 번호 부르기2 (0) | 2021.11.26 |
코드업 기초 100제 92번 - 함께 문제 푸는 날 (0) | 2021.11.22 |
코드업 기초 100제 91번 - 수 나열하기3 (0) | 2021.11.22 |
코드업 기초 100제 90번 - 수 나열하기2 (0) | 2021.11.22 |