• Home
  • About
    • Develop Woongs photo

      Develop Woongs

      make awesome woongs

    • Learn More
    • Facebook
    • Instagram
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

Algorithm-BOJ-10808

25 Jan 2019

Reading time ~1 minute

백준 (BOJ) 10808 알파벳 개수

간단한 문제이기 때문에 여러 방법이 있겠지만, 필자는 알파벳 순으로 0~25의 배열에서 해당 알파벳의 인덱스를 +1 시켜주는 방법을 사용해 해결했다.

  • 우선 알파벳으로 이루어진 alpabet array와 개수를 카운트 할 0~25까지의 빈 count array 를 만든다.
  • 입력받은 단어를 한 글자씩 알파벳 배열의 몇 번째 인덱스에 해당하는지 찾는다.
  • count array의 해당 인덱스를 +1 시켜준다.

문제는 방법이 아니라 어떻게 구현할 것인가였다. 과거에는 find() 함수를 사용해 해결할 수 있었지만, 현재는 없어졌고 array의 index를 찾는 함수를 사용해 해결하였다.

어렵지 않은 문제이기 때문에 바로 코드를 보면 이해할 수 있을 것이다.

var countArray: [Int] = [Int](repeating: 0, count: 26)
var alphabetArray = Array("abcdefghijklmnopqrstuvwxyz")

if let word = readLine(){
    
    for value in word {
        let idx = alphabetArray.firstIndex(of: value) ?? 0
        countArray[idx] += 1
    }
    
    for value in countArray {
        print(value, terminator:" ")
    }
}

Swift문법에 익숙하지 않으면, alpabetArray를 만드는 방법과, 출력을 줄바꿈 없이 띄어쓰기를 사용해 나타내는 방법을 몰라 고민할 수 있을 것 같다.



swiftAlgorithmBOJ문자열 처리 Share Tweet +1