본문 바로가기
Programming Solve/BOJ

BOJ 1157 - 단어 공부 / Swift

by msm1029 2022. 4. 8.
반응형

문제 링크 : https://www.acmicpc.net/problem/1157

 

1157번: 단어 공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

www.acmicpc.net

 

 

풀이

미리 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