1403: [기초-리스트] 이상한 출석 번호 부르기1(설명)(py)
[만든사람 : 전현석, 최문성(확인), 이준용(확인), 김지혜(그림) (2020)]
문제 설명
본 문제는 python 의 빠른 기초 학습을 위해 설계된 문제로서 python 코드 제출을 기준으로 설명되어 있습니다.
------
정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다.
선생님은 출석부를 보고 번호를 부르는데,
친구들의 얼굴과 이름을 빨리 외우기 위해 번호를 랜덤으로 아무렇게나 부른다.
그리고 얼굴과 이름이 잘 기억되지 않는 친구들은 번호를 여러 번 더 부르는데,
이름과 얼굴을 더 빨리 외우려고 하는 것이다.
영일이는 각각의 번호들이 몇 번씩 불렸는지 알고 싶어졌다.
아무렇게나 부른 n번의 출석 번호가 주어질 때, 각 번호(1 ~ 23)가 불린 횟수를 출력해보자.
예시
...
n = int(input()) #n에 정수로 저장
a = input().split() #한 줄을 입력받아 공백을 구분기호로 잘라 a에 순서대로 저장
for i in range(n) : #0부터 n-1까지 값을 i에 저장시켜가면서 반복
a[i] = int(a[i]) #a[i]에 저장되어있는 값들을 정수로 변환해서 다시 저장
d = [] #d라는 이름으로 빈 리스트 [ ] 변수를 만듦. 대괄호 기호 [ ]를 사용한다.
for i in range(24) :
d.append(0) #빈 리스트 [ ] 안에 24개의 0을 추가함. [0, 0, 0, ... 0, 0, 0]
#이렇게 하면, d[0], d[1], d[2], ... , d[22], d[23]으로 각각의 값을 읽고 저장할 수 있다.
for i in range(n) :
d[a[i]] += 1 #번호를 부를 때마다, 그 번호에 대한 카운트를 1만큼씩 증가시켜서 다시 저장
for i in range(1, 24) :
print(d[i], end=' ') #각 번호별로 카운트한 값을 스페이스로 구분해서 한 줄로 출력
...
참고
...
d = [] #데이터를 리스트(list, 목록)로 저장하기 위해 아무것도 없는 리스트 변수 d 만들기
d.append(값) #d 리스트의 마지막에 값 추가(append)하기
d[a[i]] += 1 #2중 리스트 참조 : 만약 a[i]의 값이 1이었다면? d[1] += 1이 실행된다. d[1]에 저장되어있는 값을 1만큼 증가
...
어떤 값을 기록했다가 다시 사용할 필요가 있을 때, 변수(variable)를 만들어서 사용하는 것처럼,
여러 개의 값들을 하나의 리스트(목록)처럼 묶어 사용하고 싶을 때, 리스트(list)를 [ ]로 만들어 사용할 수 있다.
리스트는 여러 값들을 모아 놓은 변수라고 생각할 수도 있는데, 참조 번호를 이용해서 안에 들어있는 값에 접근하고 사용할 수 있다.
------
정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다.
선생님은 출석부를 보고 번호를 부르는데,
친구들의 얼굴과 이름을 빨리 외우기 위해 번호를 랜덤으로 아무렇게나 부른다.
그리고 얼굴과 이름이 잘 기억되지 않는 친구들은 번호를 여러 번 더 부르는데,
이름과 얼굴을 더 빨리 외우려고 하는 것이다.
영일이는 각각의 번호들이 몇 번씩 불렸는지 알고 싶어졌다.
아무렇게나 부른 n번의 출석 번호가 주어질 때, 각 번호(1 ~ 23)가 불린 횟수를 출력해보자.
예시
...
n = int(input()) #n에 정수로 저장
a = input().split() #한 줄을 입력받아 공백을 구분기호로 잘라 a에 순서대로 저장
for i in range(n) : #0부터 n-1까지 값을 i에 저장시켜가면서 반복
a[i] = int(a[i]) #a[i]에 저장되어있는 값들을 정수로 변환해서 다시 저장
d = [] #d라는 이름으로 빈 리스트 [ ] 변수를 만듦. 대괄호 기호 [ ]를 사용한다.
for i in range(24) :
d.append(0) #빈 리스트 [ ] 안에 24개의 0을 추가함. [0, 0, 0, ... 0, 0, 0]
#이렇게 하면, d[0], d[1], d[2], ... , d[22], d[23]으로 각각의 값을 읽고 저장할 수 있다.
for i in range(n) :
d[a[i]] += 1 #번호를 부를 때마다, 그 번호에 대한 카운트를 1만큼씩 증가시켜서 다시 저장
for i in range(1, 24) :
print(d[i], end=' ') #각 번호별로 카운트한 값을 스페이스로 구분해서 한 줄로 출력
...
참고
...
d = [] #데이터를 리스트(list, 목록)로 저장하기 위해 아무것도 없는 리스트 변수 d 만들기
d.append(값) #d 리스트의 마지막에 값 추가(append)하기
d[a[i]] += 1 #2중 리스트 참조 : 만약 a[i]의 값이 1이었다면? d[1] += 1이 실행된다. d[1]에 저장되어있는 값을 1만큼 증가
...
어떤 값을 기록했다가 다시 사용할 필요가 있을 때, 변수(variable)를 만들어서 사용하는 것처럼,
여러 개의 값들을 하나의 리스트(목록)처럼 묶어 사용하고 싶을 때, 리스트(list)를 [ ]로 만들어 사용할 수 있다.
리스트는 여러 값들을 모아 놓은 변수라고 생각할 수도 있는데, 참조 번호를 이용해서 안에 들어있는 값에 접근하고 사용할 수 있다.
입력 설명
첫 번째 줄에 번호를 부른 횟수(n)가 입력된다.
두 번째 줄에는 n개의 번호(k)가 스페이스로 분리되어 한 줄로 입력된다.
(1<=n<=10000, 1<=k<=23)
두 번째 줄에는 n개의 번호(k)가 스페이스로 분리되어 한 줄로 입력된다.
(1<=n<=10000, 1<=k<=23)
출력 설명
1번부터 23번까지 각 번호가 불린 횟수를 스페이스로 분리해서 한 줄로 출력한다.
입력 예시 Copy
10
1 3 2 2 5 6 7 4 5 9
출력 예시 Copy
1 2 1 1 2 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
도움
기초100제(py) v0.85 : 정보교사 커뮤니티 @컴퓨터과학사랑(CSL)
- 중고등학교 정보 선생님들과 함께 정보수업/방과후/동아리활동 등을 통해 재미있게 배워보세요.
- 모든 내용 및 이미지들은 저작자와의 협의 없이 무단으로 사용할 수 없습니다.
- 중고등학교 정보 선생님들과 함께 정보수업/방과후/동아리활동 등을 통해 재미있게 배워보세요.
- 모든 내용 및 이미지들은 저작자와의 협의 없이 무단으로 사용할 수 없습니다.