https://school.programmers.co.kr/learn/courses/30/lessons/84512
처음에는 규칙이 보여서 수학적으로 접근해보려고 했는데 멍청해서 그런가 풀이가 안떠올랐다.
그래서 주어지는 조건으로 추측했을때 경우의 수가 엄청 많지는 않겠다 싶어서
무식하게 발생할 수 있는 경우의 수를 다 생성하는 함수를 만들고
정렬한 뒤 indexOf 를 이용해서 순서를 찾아냈다.
class Solution {
fun solution(word: String): Int {
var answer = 0
var result = generateCombinationsWithRepetition(charArrayOf('A', 'E', 'I', 'O', 'U'),5)
answer = result.sorted().indexOf(word) + 1
return answer
}
fun generateCombinationsWithRepetition(
chars: CharArray,
maxLength: Int,
current: String = "",
result: MutableSet<String> = mutableSetOf()
): Set<String> {
if (current.length > maxLength) {
return result
}
if (current.isNotEmpty()) {
result.add(current)
}
for (i in chars.indices) {
generateCombinationsWithRepetition(chars, maxLength, current + chars[i], result)
}
return result
}
}
반응형
'알고리즘' 카테고리의 다른 글
프로그래머스 - 인사고과 (0) | 2024.08.28 |
---|---|
프로그래머스 - 연속 펄스 부분 수열의 합 (3) | 2024.08.28 |
프로그래머스 - 피로도 (0) | 2024.08.27 |
프로그래머스 - 할인 행사 (0) | 2024.08.27 |
프로그래머스 - 숫자 짝꿍 (0) | 2024.08.27 |
프로그래머스 - 혼자 놀기의 달인 (0) | 2024.08.26 |
프로그래머스 - 연속 부분 수열 합의 개수 (0) | 2024.08.26 |
프로그래머스 - 택배상자 (0) | 2024.08.25 |