https://school.programmers.co.kr/learn/courses/30/lessons/120911
문제
영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해 보세요.
제한사항
0 < my_string 길이 < 100
풀이
class Solution {
fun solution(my_string: String): String {
val arr = IntArray('z' - 'a' + 1) {0}
my_string.forEach {
if (it <'a'){//대문자
arr[it-'A']++
}else{//소문자
arr[it-'a']++
}
}
return buildString {
arr.forEachIndexed { index, i ->
repeat(i){
append('a'+index)
}
}
}
}
}
- 이번문제는 모든 문자열을 소문자로 바꾸고 그 값을 정렬하라는 문제입니다 그렇다면 이말대로 그렇게 정렬한다면 쉽겠지만 그럴 경우 추가계산을 한다든가 필요 없는 연산을 하게 됩니다. 그래서 이번 풀이에서는 문자열을 순환하며 대문자일 경우 A만큼 빼주고 소문자인 경우 a만큼 빼줘서 배열에 카운트해줍니다. 이후 buildStiring() 함수를 이용하여 배열을 돌면서 문자열을 만들어주면 됩니다.
결과
'코틀린 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - 이진수 더하기 (Kotlin) (0) | 2023.07.28 |
---|---|
[프로그래머스] - 머쓱이보다 키 큰 사람 (Kotlin) (0) | 2023.07.28 |
[프로그래머스] - 숫자 찾기 (Kotlin) (0) | 2023.07.27 |
[프로그래머스] - 배열의 유사도 (Kotlin) (0) | 2023.07.27 |
[프로그래머스] - 인덱스 바꾸기 (1) (Kotlin) (0) | 2023.07.27 |