https://school.programmers.co.kr/learn/courses/30/lessons/120903
문제
두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수를 return 하도록 solution 함수를 완성해 주세요.
제한사항
1 ≤ s1, s2의 길이 ≤ 100
1 ≤ s1, s2의 원소의 길이 ≤ 10
s1과 s2의 원소는 알파벳 소문자로만 이루어져 있습니다
s1과 s2는 각각 중복된 원소를 갖지 않습니다.
풀이
class Solution1 {
fun solution(s1: Array<String>, s2: Array<String>) = s1.intersect(s2.toSet()).size
}
class Solution2 {
fun solution(s1: Array<String>, s2: Array<String>): Int {
var count = 0
s2.forEach { if (it in s1) count++ }
return count
}
}
- 해당문제를 2가지 방법으로 만들어보았습니다.
- 1번 풀이 같은 경우 intersect 함수를 이용하여 같은 값들만 빼낸 set을 만들고 그 크기를 반환하는 함수입니다.
- 2번 풀이같은경우 원래 같았으면 s1을 set으로 만들고 포함이 되어있는지 확인을 했겠지만 해당배열이 중복된 원소를 갖지 않는다고 했기 때문에 따로 set으로 만들 필요는 없습니다.
- 2번 풀이가 더빠른 이유는 오직 count만 구하는 로직이기 때문에 빠른 것입니다. 1번같은경우 set을 계속 만들기 때문에 2번에 비해 느릴 수밖에 없습니다.
결과
'코틀린 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - 문자열 정렬하기 (2) (Kotlin) (0) | 2023.07.27 |
---|---|
[프로그래머스] - 숫자 찾기 (Kotlin) (0) | 2023.07.27 |
[프로그래머스] - 인덱스 바꾸기 (1) (Kotlin) (0) | 2023.07.27 |
[프로그래머스] - 대문자와 소문자 (Kotlin) (0) | 2023.07.27 |
[프로그래머스] - 중복된 문자 제거 (1) (Kotlin) (0) | 2023.07.26 |