반응형
문제 풀이:
Python은 Counter 클래스를 사용하면 쉽게 풀 수 있는 문제이다.
하지만, Swift는 따로 지원해주지 않기 때문에 딕셔너리를 카운터로 사용해야 한다.
이 방법은 이 문제가 아니더라도 쓸 일이 있어서 알아두면 좋다.
마지막에 정렬은 팔린 횟수가 많은 순으로 정렬하고 같다면 사전순으로 정렬한다.
코드:
Swift
let n = Int(readLine()!)!
var soldCounter = [String:Int]()
for _ in 0 ..< n {
let book = readLine()!
soldCounter[book, default: 0] += 1
}
print(soldCounter)
let result = soldCounter.sorted { $0.value == $1.value ? $0.key < $1.key : $0.value > $1.value }
print(result)
print(result.first!.key)
Python
import sys
from collections import Counter
input = sys.stdin.readline
n = int(input())
books = []
for _ in range(n):
books.append(input())
books.sort()
soldCounter = Counter(books)
print(soldCounter.most_common(1)[0][0])
문제:
1302번: 베스트셀러
첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고
www.acmicpc.net
부족한 점 피드백해주시면 감사하겠습니다👍
반응형
'Algorithm > BOJ' 카테고리의 다른 글
[Algorithm/BOJ] 18258 - 큐2 Swift Python (0) | 2021.05.12 |
---|---|
[Algorithm/BOJ] 1406 - 에디터 Swift Python (0) | 2021.05.11 |
[Algorithm/BOJ] 2504 - 괄호의 값 Swift (0) | 2021.05.01 |
[Algorithm/BOJ] 5557 - 1학년 (DP) Swift (0) | 2021.04.29 |
[Algorithm/BOJ] 1806 - 부분합 (투 포인터) Swift (0) | 2021.04.19 |
댓글