내가 생각한 문제를 풀이하는 방법은 다양하다.
- 조합을 사용한다.(완전탐색)
- 조건을 활용하여 조건 검색한다. (선택)
나는 spell의 모든 원소를 사용하여 단어를 만들어야한다는 것과 spell의 원소를 모두 사용해 만들 수 있는 단어는 dic에 두개이상 존재하지 않는 다는 조건 때문에 완전탐색의 방법이 자원의 낭비가 될 것이라 판단했다.
- spell의 모든 원소를 사용한다 = 만들어지는 단어의 길이는 spell 의 원소의 개수이다.
- filter 처리 후, spell을 모두 포함하는 단어가 하나라도 있으면 1을 반환한다. (아닌경우 2를 반환)
class Solution {
fun solution(spell: Array<String>, dic: Array<String>): Int {
val checkedList = dic.filter { it.length == spell.size }
return if (checkedList.any { word -> spell.all { word.contains(it) } }) 1 else 2
}
}
728x90
'개인공부 > 알고리즘' 카테고리의 다른 글
프로그래머스 - 숨어있는 숫자의 덧셈(2) (Kotlin) (0) | 2023.07.27 |
---|---|
프로그래머스 - 안전지대 (Kotlin) (0) | 2023.07.26 |
프로그래머스 - 문자열 정렬하기(2) (Kotlin) (0) | 2023.07.24 |
프로그래머스 - 7의 개수 (Kotlin) (0) | 2023.07.24 |
프로그래머스 - 잘라서 배열로 저장하기 (Kotlin) (0) | 2023.07.24 |