알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
예제 입력 1
Mississipi
예제 출력 1
?
예제 입력 2
zZa
예제 출력 2
Z
예제 입력 3
z
예제 출력 3
Z
예제 입력 4
baaa
예제 출력 4
A
let word = readLine()!.map{Character(String($0).uppercased()).asciiValue! - 65}
var wordArr = [Int](repeating: 0, count: 26)
var max = 0
var maxCount = 0
for i in word{
wordArr[Int(i)] = wordArr[Int(i)] + 1
if max < wordArr[Int(i)]{
max = wordArr[Int(i)]
maxCount = Int(i)
}
}
let maxWordArrCount = wordArr.filter{$0 == wordArr.max()!}.count
if maxWordArrCount != 1{
print("?")
}
else{
print(UnicodeScalar(maxCount + 65)!)
}
let word = readLine()!.map{Character(String($0).uppercased()).asciiValue! - 65}
var wordArr = [Int](repeating: 0, count: 26) // A~Z의 개수가 들어갈 공간
var max = 0 // 배열안의 최댓값
var maxCount = 0 // 최댓값의 인덱스값 = 방 번호
for i in word{
wordArr[Int(i)] = wordArr[Int(i)] + 1 // 해당 알파벳이 등장할 때마다 1씩 증가
if max < wordArr[Int(i)]{
max = wordArr[Int(i)]
maxCount = Int(i) // 제일 많은 알파벳의 인덱스 번호를 추출
}
}
let maxWordArrCount = wordArr.filter{$0 == wordArr.max()!}.count
if maxWordArrCount != 1{
print("?")
}
else{
print(UnicodeScalar(maxCount + 65)!)
}
😞변수 이름 정하는 거 너무 어렵다... + 이렇게 푸는 거 맞나?? 풀이코 드가 너무 엉성한 거 같다...