난이도 : D2
문제번호 : 4834
※ 저의 풀이가 무조건적인 정답은 아닙니다.
다른 코드가 좀더 효율적이고 좋을 수 있습니다.
다른사람들의 풀이는 언제나 참고만 하시기 바랍니다.
문제 주소 및 출처입니다.
목차
1. 문제 설명
2. 문제 해석
3. 소스 코드
1. 문제 설명
0에서 9까지 숫자가 적힌 N장의 카드가 주어진다. |
입력
첫 줄에 테스트 케이스 개수 T가 주어진다. ( 1 ≤ T ≤ 50 ) 다음 줄부터 테스트케이스의 첫 줄에 카드 장수 N이 주어진다. ( 5 ≤ N ≤ 100 ) 다음 줄에 N개의 숫자 ai가 여백없이 주어진다. (0으로 시작할 수도 있다.) ( 0 ≤ ai ≤ 9 ) |
출력
각 줄마다 "#T" (T는 테스트 케이스 번호)를 출력한 뒤, 가장 많은 카드의 숫자와 장 수를 차례로 출력한다. |
예시
입력 | 출력 |
3 5 49679 5 08271 10 7797946543 |
#1 9 2 #2 8 1 #3 7 3 |
2. 문제풀이
파이썬 Intermediate 1일차 문제입니다. 이번도 카운팅 문제인데요. 기초적인 문제들이라 자주나오는것 같습니다. 카운팅문제는 각 번호의 개수를 저장할 리스트를 만든후에 나온 카드의 번호에 해당하는 인덱스에 접근하여 갯수를 하나씩 늘린뒤에 뒤부터 검사하여 제일 많이나온 카드를 확인하면 됩니다. 같은 장수라면 패쓰하는 형식으로 하여 제일 큰 값인 카드를 출력합니다. |
3. 소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#D2 4834 숫자카드
length = int(input())
for l in range(1, length+1):
size = input()
temp = list(map(int, list(input())))
#각 자리수를 카운팅하기 위해 사용
numcheck = [0]*10
#각 자리수 카운팅하기
for t in temp: numcheck[t] += 1
#숫자와 횟수를 적기위한 변수
index = maxnum = 0
#반복문을 돌면서 찾는다
for i in range(9, -1, -1):
if numcheck[i] > maxnum :
maxnum = numcheck[i]
index = i
#출력
print("#{} {} {}".format(l, index, maxnum))
|
'코딩테스트 > SWExpertAcademy' 카테고리의 다른 글
min, max Python(SW Expert Academy) (0) | 2020.02.26 |
---|---|
구간합 Python(SW Expert Academy) (1) | 2020.02.25 |
전기버스 Python(SW Expert Academy) (0) | 2020.02.23 |
Sum Python(SW Expert Academy) (0) | 2020.02.22 |
최빈수 구하기 Python(SW Expert Academy) (0) | 2020.02.21 |
댓글