문제
본 문제는 python 의 빠른 기초 학습을 위해 설계된 문제로서 python 코드 제출을 기준으로 설명되어 있습니다.
------
정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다.
선생님은 출석부를 보고 번호를 부르는데,
학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부른다.
그리고 얼굴과 이름이 잘 기억되지 않는 학생들은 번호를 여러 번 불러
이름과 얼굴을 빨리 익히려고 하는 것이다.
출석 번호를 n번 무작위로 불렀을 때, 각 번호(1 ~ 23)가 불린 횟수를 각각 출력해보자.
예시
n = int(input()) #개수를 입력받아 n에 정수로 저장
a = input().split() #공백을 기준으로 잘라 a에 순서대로 저장
for i in range(n) : #0부터 n-1까지...
a[i] = int(a[i]) #a에 순서대로 저장되어있는 각 값을 정수로 변환해 다시 저장
d = [] #d라는 이름의 빈 리스트 [ ] 변수를 만듦. 대괄호 기호 [ ] 를 사용한다.
for i in range(24) : #[0, 0, 0, ... , 0, 0, 0] 과 같이 24개의 정수 값 0을 추가해 넣음
d.append(0) #각 값은 d[0], d[1], d[2], ... , d[22], d[23] 으로 값을 읽고 저장할 수 있음.
for i in range(n) : #번호를 부를 때마다, 그 번호에 대한 카운트 1씩 증가
d[a[i]] += 1
for i in range(1, 24) : #카운트한 값을 공백을 두고 출력
print(d[i], end=' ')
참고
- d = [] #어떤 데이터 목록(list) 을 순서대로 저장하기 위해 아무것도 없는 리스트 변수 만들기
- d.append(값) #d 리스트의 마지막에 원하는 값을 추가(append)해 넣음
- d[a[i]] += 1 #2중 리스트 참조 : 만약 a[i]의 값이 1이었다면? d[1] += 1 이 실행되는 것이다. 1번 카운트 1개 증가..
어떤 값을 기록했다가 다시 사용할 필요가 있을 때, 필요한 변수(variable)를 만들어 사용하는 것처럼,
여러 개의 값을 하나로 묶어 목록으로 기록했다가 다시 사용할 필요가 있을 때, 리스트(list)를 만들어 사용할 수 있다.
리스트는 변수들을 모아 놓은 변수라고 생각할 수도 있고, 참조번호를 이용해 간단하고 편리하게 사용할 수 있다.
내 풀이
n = int(input())
a = input().split()
d = []
for i in range(24):
d.append(0)
for i in range(n):
a[i] = int(a[i])
for i in range(n):
d[a[i]] = d[a[i]] + 1
for i in range(1, 24):
print(d[i], end=' ')
모범답안
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=' ')
해설
빈 리스트를 만들어주고 거기에 0을 채워넣는다. 그리고 a에 입력받은 값을 모두 숫자로 바꿔준 후 for문을 돌면서 a에 있는 숫자를 1씩 올려준다. 마지막에 1부터 23까지의 값을 반환하면 된다.
'CodeUp 기본 100제 - Python' 카테고리의 다른 글
[CodeUp] 6094 : [기초-리스트] 이상한 출석 번호 부르기3 (Python) (0) | 2023.05.12 |
---|---|
[CodeUp] 6093 : [기초-리스트] 이상한 출석 번호 부르기2 (0) | 2023.05.12 |
[CodeUp] 6091 : [기초-종합] 함께 문제 푸는 날 (Python) (0) | 2023.05.12 |
[CodeUp] 6090 : [기초-종합] 수 나열하기3 (Python) (0) | 2023.05.12 |
[CodeUp] 6089 : [기초-종합] 수 나열하기2 (Python) (0) | 2023.05.12 |