Count 리스트

2022. 10. 15. 00:23파이썬(Python)

반응형

1. Count 리스트

- 각 숫자가 몇 번 나왔는지 구할 때 사용

- 각각의 빈도를 리스트로 저장하기 위해

 

Q) 주사위를 10번 던졌을 때 1 3 6 2 1 3 3 5 4 4 값이 나오면 1~6까지 각각의 수가 얼마나 나오는지 구하기

1. 중첩 반복문

arr=list(map(int,input().split()))

for i in range(1,7):
    cnt=0
    for j in arr:
        if i==j:
            cnt+=1
    print(f'{i}는 {cnt}번')

결과

>> 1 3 6 2 1 3 3 5 4 4
1는 2번
2는 1번
3는 3번
4는 2번
5는 1번
6는 1번

 

2. Count 배열

count_arr=[0]*7

# count_arr = [0, 0, 0, 0, 0, 0, 0]

- 각 인덱스는 주사위 수를 의미

- 예를 들어 count_arr [3] = 4 이면 주사위 수가 3이 4번 나왔다는 것을 의미

 

arr=list(map(int,input().split()))

count_arr=[0]*7
for i in arr:
    count_arr[i]+=1

for i in range(1,7):
    print(f'{i}는 {count_arr[i]}번')

결과

>> 1 3 6 2 1 3 3 5 4 4
1는 2번
2는 1번
3는 3번
4는 2번
5는 1번
6는 1번

 

- count 배열은 모든 원소를 0으로 초기값으로 가지고 나타내야 할 개수+1만큼 리스트의 길이를 정해준다.


Q) 숫자 개수 세기

- 100 미만의 양수들을 입력

- 입력한 수들의 1~9까지의 개수들을 각각 출력

- ex) 55 36 73

- 한 자릿수로 쪼개면 5,5,3,6,7,3

- 답은 1-0, 2-0, 3-2, 4-0, 5-2, 6-1, 7-1, 8-0, 9-0

 

arr=list(map(int,input().split()))

count_arr=[0]*10
for i in arr:
    if i>=10:
        count_arr[i//10]+=1
        count_arr[i%10]+=1
    else:
        count_arr[i]+=1

for i in range(1,10):
    print(f'{i}-{count_arr[i]}')

결과

>> 30 55 14 3 23 5 16 79 77
1-2
2-1
3-3
4-1
5-3
6-1
7-3
8-0
9-1

Q) 시험 성적 점수대 통계

- 학생들의 점수를 입력

- 점수를 10점 단위로 구분

- 점수대별 학생 수를 출력 (100점대부터 먼저 출력)

- ex) 80-5  =>  80점대 5명

 

arr=list(map(int,input().split()))

count_arr=[0]*11
for i in arr:
    count_arr[i//10]+=1

for i in range(10,0,-1):
    print(f'{i*10}-{count_arr[i]}')
>> 55 67 89 40 99 100 87 63 100

100-2
90-1
80-2
70-0
60-2
50-1
40-1
30-0
20-0
10-0

Q) 나머지의 제곱

- 두 수 a, b를 입력

- 2 <=b <=10

- a가 1 이하가 될 때까지 나눗셈을 반복

- 각 연산마다 나머지들이 등장한 횟수를 제곱

- 제곱한 값들의 합을 출력

a,b=map(int,input().split())
count_arr=[0]*10

while True:
    print(f'{a} / {b} = {a//b} ... {a%b}')
    count_arr[a%b]+=1
    a=a//b
    if a<=1: break

sum_val=0
for i in range(0,10):
    if count_arr[i]!=0:
        print(f'{i}는 {count_arr[i]}번')
    sum_val+=count_arr[i]**2
print(sum_val)

결과

>> 1000 4      
1000 / 4 = 250 ... 0
250 / 4 = 62 ... 2
62 / 4 = 15 ... 2
15 / 4 = 3 ... 3
3 / 4 = 0 ... 3
0는 1번
2는 2번
3는 2번
9

- 두 수가 1000 4 일 때, 나머지가 0이 1번, 2가 2번, 3이 2번 등장

- 1^2 + 2^2 + 3^2 = 9


 

 

 

 

'파이썬(Python)' 카테고리의 다른 글

리스트 최대, 최소  (0) 2022.10.23
리스트 탐색  (0) 2022.10.22
리스트 만들기  (0) 2022.10.14
리스트와 인덱스  (0) 2022.10.10
리스트 (list)  (0) 2022.10.01