import Foundation
var bookSaleInfo = String: Int
for _ in 0..<Int(readLine()!)! {
let bookName = readLine()!.trimmingCharacters(in: .whitespacesAndNewlines)
bookSaleInfo[bookName, default: 0] += 1
}
let booksNames = bookSaleInfo.keys.sorted()
var cnt = -1
var ans = ""
for bookName in booksNames {
if bookSaleInfo[bookName]! > cnt {
cnt = bookSaleInfo[bookName]!
ans = bookName
}
}
print(ans)
코드 설명
- bookSaleInfo라는 딕셔너리를 만든다.
- 입력에서 빈 공백을 제거해주는
trimmingCharactres(in: .whitespaceAndNewlines)
를 사용한 책 이름을bookName
에 저장해준다. bookSaleInfo
에 해당 이름을 해당하는 value 값을 1 증가 시킨다. -> [bookName, default:0] default는 아무 값도 없을 때 기본 값이다.- 가장 많이 팔린 책이 여러 권일 경우 이름 순 제일 앞의 값을 제출하라고 했기에
sorted()
사용한다. - bookNames를 for문 순회하면서 value값을 비교하면서 제일 큰 값을 ans변수에 저장한다.
https://www.acmicpc.net/problem/1302
'코딩테스트 > 문제풀이-1' 카테고리의 다른 글
[선택] 10818 최소, 최대 (0) | 2024.01.25 |
---|---|
[선택] 10995 별찍기 - 20 (0) | 2024.01.25 |
[선택] 2438 별 찍기 -1 (0) | 2024.01.22 |
[선택] 10869 사칙연산 (0) | 2024.01.22 |
[필수] 8892 팰린드롬 (0) | 2024.01.22 |
[필수] 8958 OX퀴즈 (0) | 2024.01.22 |
[필수] 2711 오타맨 고창영 (0) | 2024.01.21 |
[필수] 2231 분해합 (0) | 2024.01.20 |