티스토리 뷰

반응형

 

 

 


백준 10808번, 알파벳 개수 출력하기 문제 설명

안녕하세요~ 오늘도 swift 기초문제 하나를 풀어보도록 하겠습니다.
백준 10808번, 알파벳 개수는 입력받은 문자열의 a, b, c .... y, z 까지의 각 알파벳 개수를 출력하는 문제
입니다. 

 

 

 

 

입력으로 주어지는 문자열은 소문자로만 이루어져있습니다. 이 점을 토대로, 문자열의 문자 아스키코드 값은 97 ~ 122임을 이용해서 문제를 해결할 수 있습니다. 

 

 

 

 

문제 문자열 알파벳 개수 출력하기 문제의 입출력예시입니다.

 

출력예시를 보시면 a ~ z까지의 각 알파벳 문자 갯수를 출력하고 있습니다. 저는 문자열을 입력받은 후, 문자열의 문자를 하나하나 배열에 카운팅 기록한 후, 배열의 카운팅 값을 출력하는 방식으로 문제를 풀 예정입니다.

 

바로 백준 10808번 알파벳 개수 출력하기 문제 swift 언어를 사용해서 풀어보도록 하겠습니다. 

 

 

 

 


알파벳 개수 출력하기 swift 문제풀이
Character타입의 asciiValue와 카운팅 용 배열을 활용하기

먼저 Character 타입에 대한 extension 에 변수 하나를 정의하겠습니다.

 

3 ~ 5행) asciiIndex는 특정 문자의 소문자 알파벳에 대한 아스키값을 토대로 알파벳 고유 인덱스를 반환하는 프로퍼티입니다. 그 반환갑은 a -> 0, b -> 1, c -> 2 .... 와 같은 식으로 결과값을 반환하게 됩니다.

Character는 swift의 문자 타입입니다. String은 다수의 Character로 구성되어있습니다. Character의 asciiValue, unicodeScalars.first!.value 등으로 특정 문자의 ascii 값을 구할 수 있습니다.

 

 

 

8행) charDic은 소문자 알파벳 문자의 카운팅 목적으로 사용하는 배열입니다. a는 charDic[0], b는 charDic[1]과 대응되는 방식입니다. 그렇게 크기는 알파벳 갯수와 동일한 26가 되는 것이지요.

 

10 ~ 12행) 이제 입력받은 문자열을 forEach로 순회하면서 알파벳을 카운팅 해주고 있습니다.

 

 

 

 

이제 카운팅이 완료되었습니다. charDic은 [Int]타입의 배열이라 이대로 공백단위 출력하기는 어렵습니다. 이를 출력하기 쉽게 변환하는 작업을 거치겠습니다.

 

16행 )먼저 map 고차함수를 통해 [Int] -> [String] 타입의 배열로 맵핑을 해준 후, joined를 통해서 공백단위로 합쳐줍니다. 출력결과는 각각의 카운팅값을 공백단위로 출력해주어야 하기 때문이죠. 이렇게 작성한 코드의 실행 예시, 문제 제출결과는 아래와 같습니다. 

 

 

 


백준 10808 swift 작성 후 실행결과 예시
백준 10808 swift 풀이 결과

 

 

 

 

 

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함