반응형
문제 링크 : https://www.acmicpc.net/problem/1157
풀이
미리 26의 크기를 가진 알파벳 배열을 생성하고 단어의 알파벳을 세준다.
최댓값이 1개가 아니라면 "?"을 출력하고 아니라면 해당 최댓값을 출력하면 된다.
코드
import Foundation
var input = readLine()!
var alphabets = [Int](repeating: 0, count: 26)
for ch in input.uppercased() {
alphabets[Int(ch.asciiValue!) - 65] += 1
}
var maxVal = alphabets.max()!
var maxCount: Int = 0
var maxIdx: Int = 0
for i in 0..<26 {
if(alphabets[i] == maxVal) {
maxCount += 1
maxIdx = i
}
}
if(maxCount != 1){
print("?")
}
else {
print(UnicodeScalar(maxIdx + 65)!)
}
반응형
'Programming Solve > BOJ' 카테고리의 다른 글
BOJ 1546 - 평균 / Swift (0) | 2022.04.08 |
---|---|
BOJ 1330 - 두 수 비교하기 / Swift (0) | 2022.04.08 |
BOJ 1152 - 단어의 개수 / Swift (0) | 2022.04.08 |
BOJ 1874 - 스택 수열 / C++ (0) | 2022.04.08 |
BOJ 9663 - N-Queen / C++ (0) | 2022.03.28 |