본문 바로가기

백준 PS일지/String

[백준/String] 10808: 알파벳 개수 | 문자열 익숙해지기,,

문제

 

10808번: 알파벳 개수

단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.

www.acmicpc.net

간단한 문제 요약

  소문자로 이루어진 단어 중에서 각 알파벳이 단어에 몇개씩 포함되어있는지 구하시오!

문제 풀이 | PS일지

 문자열 친숙해지기!!
가장 쉽게 떠오른 방법은 String 타입의 문자 1개씩을 저장한 후에 a...z에서 대응하는 index를 증가시키는 방법을 생각했습니다.

 

C에서 게임 만들 때 자주 사용했던 ascii를 써보고 싶었습니다.. 

 

아스키 코드집을 보면 알 수 있는데

대문자 A는 65.

소문자 a는 97.

입니다..

 

String에서는 아스키 코드로 바꿀 수없지만 Character타입은 ascii로 바꿀 수 있어 이를 이용했습니다.

코드


  
var arr = Array(repeating: 0, count: 26)
_=readLine()!.map{Character(String($0))}.map { ch in
arr[Int(ch.asciiValue!)-97] += 1
}
print(arr.map{String($0)}.joined(separator: " "))
728x90