-
[Python] CodeUp : 기초 100제 6,092 이상한 출석 번호 부르기1코딩테스트/CodeUp 2024. 4. 19. 09:16
https://codeup.kr/problem.php?id=6092&rid=0
문제 위 링크에서 보시면 됩니다.
[문제 풀기 전 생각한 부분]
1. 문제가 바로 이해되지 않네.. 이거 못 풀겠다.
2. 일단 입력을 두 번 받고
3. 그 다음엔 어떻게 하냐
[my_code]
n =int(input()) # 입력을 받고 t = map(int,input().split()) # 랜덤으로 불리는 출석 번호를 받고
[문제점]
1. 처음 보는 유형의 문제여서 그런지 생각을 해봐도 도무지 어떻게 접근해야 되는 지 몰랐다.
[문제점 해결]모르면 답지 보고 공부하면 되지 ~,~
답만 보고 싶으신 분들은 아래 코드 바로 복붙하시면 됩니다. 주석도 달아 놓을 게요.
1. 출석 번호를 부른 '횟수인 n'를 입력 받는다. ex) n == 10
2. 무작위로 부른 n 개의 번호를 입력 받는다. 1 2 2 3 4 1 2 2 2 1 (가독성을 높이기 위해 중간에 공간을 띄움)
3. 무작위로 부른 번호를 카운트해야된다.
카운트 하기 위한 빈 공간(리스트)를 만들어야된다.4. 실제로 각각의 출석 번호가 몇번 불렸는 지 카운트해서 저장한다.
5. 출력
위에 말로 하니깐 이해 잘 안 되는 게 당연한겁니다. 제가 설명을 잘 못하거든요. 여러분 탓이 아닙니다. 그래도 노력하셨..
n = int(input()) # 출석 번호를 부른 횟수를 입력 받아볼게요. a = list(map(int, input().split())) # 랜덤으로 부른 n 개의 출석 번호들 ''' 출석번호는 1~23까지 있습니다. 카운트 하기 위해 빈 공간을 만들어 줍니다. 즉, 리스트를 0으로 초기화합니다. ''' d = [0] * 24 for i in range(n): d[a[i]] += 1 ''' 예를 들어, 입력된 수들이 [1, 2, 3, 1, 2] 이면 a[0] = 1 이고, d[1] = d[1] + 1 이 됩니다. d[1] = 0으로 초기화 했죠? 따라서 d[1] = 1로 카운트 되는 겁니다. 이런 식으로 반복해 빈도를 측정하는 겁니다. ''' # 카운트한 결과 출력 for i in range(1, 24): print(d[i], end=' ')
++ okay 문제는 어떻게 푸는 지 알았는 데,
왜 출석 번호는 1부터 23까지인데 d=[0]*24 총 24개를 만들까?
한번 생각해보세요.
.
.
.
.
.
.
.
출석번호가 1부터 23까지인데 d = [0] * 24를 사용하는 이유는 리스트의 인덱스가 0부터 시작하기 때문입니다.
따라서 출석번호가 1부터 23까지인 경우에도 리스트의 인덱스는 0부터 22까지 총 23개가 필요합니다.
만약에 리스트를 23개만 만들 경우 마지막 번호를 저장할 수 없습니다.
그러므로 0번째 인덱스를 활용하여 1번째 출석번호의 정보를 저장하고자 d = [0] * 24로 리스트를 초기화하는 것입니다.
'코딩테스트 > CodeUp' 카테고리의 다른 글
[Python] 기초 100제 : 바둑판에 흰 돌 놓기 (0) 2024.04.22 [Python] CodeUp : 기초 100제 6,094 : 이상한 출석 번호 부르기3 (0) 2024.04.22 [Python] CodeUp 기초 100제 6,082 3 6 9 게임의 왕이 되자 (0) 2024.04.18 [Python] CodeUp : 기초 100제 6,081 16진수 구구단 출력하기(py) (0) 2024.04.17 [Python] CodeUp : 기초100제 6,079 언제까지 더해야 할까? (0) 2024.04.17