문제 1092
[기초-리스트] 이상한 출석 번호 부르기1(설명)(py)
문제 설명
본 문제는 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번까지 각 번호가 불린 횟수를 스페이스로 분리해서 한 줄로 출력한다.
입력 예시
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
힌트
기초100제(py) v0.85 : 정보교사 커뮤니티 @컴퓨터과학사랑(CSL)
– 중고등학교 정보 선생님들과 함께 정보수업/방과후/동아리활동 등을 통해 재미있게 배워보세요.
– 모든 내용 및 이미지들은 저작자와의 협의 없이 무단으로 사용할 수 없습니다.
– 중고등학교 정보 선생님들과 함께 정보수업/방과후/동아리활동 등을 통해 재미있게 배워보세요.
– 모든 내용 및 이미지들은 저작자와의 협의 없이 무단으로 사용할 수 없습니다.
출처
기초100제(py)1