<청춘> 격정적으로 사는 것

밤을 새고 공부한 다음 날 새벽에 느꼈던 생생한 환희와 야생적인 즐거움을 잊을 수 없다

코딩테스트/삼성 SW Expert Academy

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

수학도 2021. 7. 14. 17:09

출처

https://swexpertacademy.com/main/solvingProblem/solvingProblem.do

 

SW Expert Academy

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

swexpertacademy.com

 

  • 시간 : 10개 테스트케이스를 합쳐서 Python의 경우 2초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내

 

※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.


0에서 9까지 숫자가 적힌 N장의 카드가 주어진다.

가장 많은 카드에 적힌 숫자와 카드가 몇 장인지 출력하는 프로그램을 만드시오. 카드 장수가 같을 때는 적힌 숫자가 큰 쪽을 출력한다.

 

[입력]
 다음 줄부터 테스트케이스의 첫 줄에 카드 장수 N이 주어진다. ( 5 ≤ N ≤ 100 ) 각 줄마다 "#T" (T는 테스트 케이스 번호)를 출력한 뒤, 가장 많은 카드의 숫자와 장 수를 차례로 출력한다.

 

[출력]

다음 줄에 N개의 숫자 ai가 여백없이 주어진다. (0으로 시작할 수도 있다.)  ( 0 ≤ ai ≤ 9 ) 

첫 줄에 테스트 케이스 개수 T가 주어진다.  ( 1 ≤ T ≤ 50 )

 

입력
3
5
49679
5
08271
10
7797946543
출력
#1 9 2
#2 8 1
#3 7 3

 

Pass 코드

T = int(input())
t = 1

while T-t >= 0 :
    N = int(input())
    
    ai = list(map(str, input()))
    ai = list(map(int, ai))

    # 카드가 0 - 9 까지만 존재하니까 0부터 9까지를 담을 수 있는 크기가 10인 리스트를 만든다.
    card = [0] * 10
  
    for i in ai:
        card[i] += 1
      
    index = 0
    max = 0
    for i in range(10):
        if card[i] >= max:
            index = i
            max = card[i]

    print("#"+str(t), index, max)
    t += 1