
문제 해석
0~9까지의 숫자가 적힌 N장의 카드에서 가장 많이 나온 숫자와 개수를 출력
입력
출력
문제 풀이 절차
작성 코드
import sys
sys.stdin = open('./4834_input.txt')
for tc in range(1, int(input())+1):
N = int(input())
cards = list(map(int,input()))
cnt = [0]*10
for elem in cards: #카드 개수 저장
cnt[elem] += 1
maxE, maxI = 0,0
for i, e in enumerate(cnt): #카드 최대개수, 카드숫자 추출 위한 for문
if maxE<=e:
maxE = e
maxI = i
if maxI<i:
maxI=i
print(f'#{tc}', maxI, maxE)
피드백
"유진님 아이디어는 너무 잘 해주셨습니다. 다만 if문 처리 방식에 대해 조금 더 명확한 학습이 필요합니다. 아래는 그 이유와 예시 코드입니다. 혹 더 보충 설명이 필요하다면 말씀해주세요."
피드백 코드
import sys
sys.stdin = open('./4834_input.txt')
for tc in range(1, int(input())+1):
N = int(input())
cards = list(map(int,input()))
cnt = [0]*10
for elem in cards: #카드 개수 저장
cnt[elem] += 1
maxE, maxI = 0,0
for i, e in enumerate(cnt): #카드 최대개수, 카드숫자 추출 위한 for문
# if maxE<=e:
# maxE = e
# maxI = i
# if maxI<i: #이곳 if문은 제대로 실행 될 수 없습니다.
# maxI=i #위에서 maxI값을 무조건 i의 값으로 바꾸고 있기 때문에 maxI==i가 됩니다.
if maxE <= e:
if maxE==e :
maxI = max(maxI, i)
else :
maxE = e
maxI = i
print(f'#{tc}', maxI, maxE)