👜 [문제]
0에서 9까지 숫자가 적힌 N장의 카드가 주어진다.
가장 많은 카드에 적힌 숫자와 카드가 몇 장인지 출력하는 프로그램을 만드시오.
카드 장수가 같을 때는 적힌 숫자가 큰 쪽을 출력한다.
[input]
3
5
49679
5
08271
10
7797946543
[output]
#1 9 2
#2 8 1
#3 7 3
import sys
sys.stdin = open("input.txt")
T = int(input())
for tc in range(1, T+1):
N = int(input())
nums=input()
cnt_list = [0 for _ in range(10)]
for i in nums:
cnt_list[int(i)]+=1
max_idx=0
max_num=0
for j in range(len(cnt_list)):
# cnt_list의 인덱스를 전부 돌면서 max_sum엔 가장 큰 값을 넣어 준다.
# 같다는 조건도 넣어 주었으니 만약 2가 2장 7이 2장 즉, 중복된 카드가 각 2장으로 같다 하더라도
# 2의 인덱스를 지나 7의 인덱스를 돌며 7의 값을 가져오므로
# 적힌 숫자가 큰 쪽을 들고온다는 조건이 성립된다.
if cnt_list[j] >=max_num:
max_num = cnt_list[j]
max_idx=j
print("#{} {} {}".format(tc, max_idx, max_num))
🍦 [복습]
# 1. 210218
다음과 같이 해당 인덱스를 받아오려면 max_idx 변수를 if문 안에 함께 넣어주자!
이 부분 자꾸 잊어버리고 헷갈린다 ╯︿╰
max_idx =0
for i in range(10) :
if cnt_arr[i] >= max_val :
max_val = cnt_arr[i]
max_idx = i
# 2. 210221
느낀점
가장 많은 장수의 카드의 넘버를 받아오는 것을 자주 어려워 한다.
len()을 사용하면 해당 카드 넘버를 받아올 수 있다는 점 잊지말자!
'# 3. APS > SWEA' 카테고리의 다른 글
SWEA # Python_D2_1986_지그재그 숫자 ✅ (0) | 2021.02.18 |
---|---|
SWEA # Python_D2_4835_구간합 ✅ (0) | 2021.02.18 |
SWEA # Python_D2_4828_min max ✅ (0) | 2021.02.17 |
SWEA # Python_D2_11454_Baby-gin Game (0) | 2021.02.16 |
SWEA # Python_D2_1945_간단한 소인수분해 (while문) (0) | 2021.02.15 |