일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- LG글로벌챌린저
- 칭기스칸 동상
- 월드프렌즈 ICT 봉사단
- 월드프렌즈
- 테를지국립공원
- 한 줄로 서기
- 울란바토르
- 코로나
- SWEA
- algorithm
- 아부다비
- 테를지
- 초원
- 백준
- ICT봉사단
- 헬스
- 독일
- 게르
- 몽골
- 몽골요리
- 몽골 고기
- 알고리즘
- 여행
- 소프트웨어 아카데미
- Python
- 교환학생
- 담슈타트
- 칭기즈칸
- 몽골 헬스장
- 파이썬
- Today
- Total
맛있는물회
[맛있는물회] <SWEA알고리즘> 4834번 "숫자 카드" 본문
문제 조건
0에서 9까지 숫자가 적힌 N장의 카드가 주어진다.
가장 많은 카드에 적힌 숫자와 카드가 몇 장인지 출력하는 프로그램을 만드시오. 카드 장수가 같을 때는 적힌 숫자가 큰 쪽을 출력한다.
Input
첫 줄에 테스트 케이스 개수 T가 주어진다. ( 1 ≤ T ≤ 50 )
다음 줄부터 테스트케이스의 첫 줄에 카드 장수 N이 주어진다. ( 5 ≤ N ≤ 100 )
다음 줄에 N개의 숫자 ai가 여백없이 주어진다. (0으로 시작할 수도 있다.) ( 0 ≤ ai ≤ 9 )
Output
각 줄마다 "#T" (T는 테스트 케이스 번호)를 출력한 뒤, 가장 많은 카드의 숫자와 장 수를 차례로 출력한다.
생각한 아이디어
빈도 수를 Count 하는 하나의 List를 만든다. 처음에 당황했던 것이 파이썬 문법을 잘 몰라서 단순하게 공백없는 문자열을 입력받고 10으로 나눠가며 나머지에 해당하는 Index 를 Count 하고 N //= 10 으로 몫만 살려서 진행했다.
그런데 두번째 인풋에는 첫번째 자리수가 0이었다. 그래서 계산이 되지 않았다.
그래서 방식을 바꾸었다. 문자열로 입력을 받고 문자열도 다른 언어와 마찬가지로 List 의 Index를 가지고 있다는 것을 알게 되었고 Index를 하나씩 올려가며 Int 로 형변환 한 뒤 접근을 하였다.
그렇게 푸니 아주 쉽게 풀렸다.
소스코드
T = int(input())
for TC in range(1, T+1):
num = int(input())
N = str(input())
cnt = []
for i in range(10):
cnt.append(0)
for i in range(num):
cnt[int(N[i])] += 1
max = -1
for i in range(10):
if cnt[i] >= max:
ans = i
max = cnt[i]
print("#%d %d %d" %(TC, ans, cnt[ans]))
*파이썬 문법 정리
- / 연산은 정수를 연산하더라도 소수점이 남는다. // 연산을 진행하면 나머지는 버리고 몫만 남게된다.
- 문자열이 어떻게 처리되는지는 모르겠지만 일반적으로 C에서 진행되는 것 처럼 배열의 인덱스를 가지게 된다. 즉, N = str(input()) 으로 받으면 N[0] ~ N[len(N)] (맞나?) 로 진행하면 된다.
- List 를 만들고 초기화를 하고 싶으면 Array.append(0)을 for문을 돌려 진행하면 된다. 다른 더 좋은 방법이 있는 것 같던데 찾아 봐야겠다.
- 파이썬은 print 하는 형식이 조금 다르다. ( ) 안에 , 가 없으며 넣고 싶은 형식을 뒤에 %(~,~,~) 이런식으로 진행한다.
'IT > 알고리즘' 카테고리의 다른 글
[맛있는물회] <SWEA알고리즘> 4828번 "min max" (0) | 2020.03.31 |
---|---|
[맛있는물회] <SWEA알고리즘> 4831번 "전기 버스 " (0) | 2020.03.31 |
[맛있는물회] <SWEA 알고리즘> 4835번 "구간합 구하기" (1) | 2020.03.31 |
[맛있는물회] <알고리즘> 2200번 "계산기 " (0) | 2020.03.28 |
[맛있는물회] <알고리즘> 1138번 "한 줄로 서기" (0) | 2020.03.19 |