16180. 4834. [파이썬 S/W 문제해결 기본] 1일차 - 숫자 카드

D2

Problem

SW Expert Academy 숫자 카드

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


Solution

1. Counting Sort 와 같이 index를 값으로 하는 리스트를 만들어 개수를 센다.
2. 개수 내에서 최댓값과 그 index를 출력한다.

Code

for test_case in range(1, int(input()) + 1):
    N = int(input())
    # 0이 제일 앞에 나올때를 대비해 str형식으로 받아 한 글자씩 int 변환
    num_list = list(map(int, list(input())))
    cnt = [0] * 10 # 개수 카운트용 리스트(Index = 숫자)
 
    # 개수 카운트
    for i in range(N):
        cnt[num_list[i]] += 1
    # 최대 값과 최대값 인덱스 구하기
    max_idx = 0
    # max 함수 안 써보기
    for i in range(len(cnt)):
        if cnt[max_idx] <= cnt[i]:
            max_idx = i
    print(f'#{test_case} {max_idx} {cnt[max_idx]}')

 

※ 주의

max() 함수를 쓸 경우, list의 내장 함수 .index()를 써서 인덱스 값을 가져올 수 있지만,
.index() 는 값이 같으면 가장 작은 값을 가져오기 때문에 주의 해야한다.
반응형