본문 바로가기
Algorithm Problem Solving/SW Expert Academy

[Python] SW Expert Academy - 4834. 숫자 카드

by ʚ⇜❅🎕̈❄⇝ɞ 2021. 7. 21.
728x90
반응형

SW Expert Academy 4834번 숫자 카드 문제는 숫자가 적힌 N장의 카드 중 가장 많은 카드에 적힌 숫자와 카드가 몇 장인 지를 출력하는 문제이다. 카드 장 수가 같을 때는 적힌 숫자가 큰 쪽을 출력한다. 리스트 자료구조에 관한 문제이며 난이도는 D2이다.

SW Expert Academy 4834번 숫자 카드 문제 정보

자료구조 분류

리스트

난이도

D2

숫자 카드 문제 요약

  • N장의 숫자 카드가 주어졌을 때, 가장 많은 카드에 적힌 숫자와 장 수를 출력한다.
  • N의 범위는 5 이상 100 이하, 카드에 적힌 숫자의 범위는 0~9이다.
  • 카드 장 수가 같을 때에는 적힌 숫자가 큰 쪽을 출력한다.

문제 풀이 과정

  • 숫자의 범위가 0~9 이므로 숫자 별 카드 장 수를 카운트하기 위해 길이가 10인 cnt 리스트를 선언했다.
  • 숫자 카드의 숫자를 입력받아 a 리스트에 저장하고 cnt 리스트에 숫자(인덱스) 별 카드 장 수(값)를 저장하였다.
  • cnt 리스트에서 최댓값을 구하여 tmp 리스트에 저장하였다.
  • 테스트 케이스 번호, 숫자, 장 수를 출력하였다.

코드

T = int(input())  #T: 테스트케이스 개수
for i in range(T):  #테스트케이스 번호: i+1
    cnt = [0 for i in range(10)]  #cnt: 숫자별 카드 개수 저장 리스트
    tmp = [0 for i in range(2)]  #tmp: 출력 값 저장 리스트
    n = int(input())  #n: 카드 장수
    a = list(map(int, input()))  #a: n개 카드의 숫자들
    for num in a:
        cnt[num] += 1
    maxNum = 0
    for idx, c in enumerate(cnt):
        if c >= maxNum:
            maxNum = c
            tmp[0] = idx
            tmp[1] = c
    print("#{0} {1} {2}".format((i+1), tmp[0], tmp[1]))

 

SW Expert Academy 4834번 숫자 카드 문제는 리스트 자료구조에 관한 문제이며 언어는 파이썬을 사용하였다. 난이도 D2 중에서 어렵지는 않은 수준 같다. 해결 법을 생각해 내는데 별로 오랜 시간이 걸리지 않았고, 한 번에 pass 하였기 때문이다.

728x90
반응형

댓글