본문 바로가기
코딩테스트

[프로그래머스] 배열의 유사도

by liz_devel 2025. 12. 19.

🗒 문제


📝 나의 문제풀이

class Solution {
    fun solution(s1: Array<String>, s2: Array<String>): Int {
        var answer = 0
        for(s in s1){
            for(x in s2){
                if(s==x) answer++
            }
        }
        return answer
    }
}

 


📝 다른 사람의 문제 풀이

다른 사람의 문제 풀이는 좋아요 수가 높거나 많은 사람들이 푼 방법 기준으로 첨부하였습니다.

class Solution {
    fun solution(s1: Array<String>, s2: Array<String>) = s1.map(s2::contains).count { it }
}

🖊 문제 풀이 시 알면 좋을 것

 

contains() 함수

✔ 의미

배열에 특정 값이 들어 있는지 확인

val arr = arrayOf("a", "b", "c")

arr.contains("b")  // true
arr.contains("d")  // false

 

 

map() 함수

✔ 의미

각 요소를 다른 값으로 바꾼 새 리스트 생성

val nums = listOf(1, 2, 3)
nums.map { it * 2 }   // [2, 4, 6]

 

이 문제에서는?

s1.map(s2::contains)

👉 s1의 각 문자열이
👉 s2에 있으면 true, 없으면 false

예:

s1 = ["a", "b", "c"]
s2 = ["b", "c"]

→ [false, true, true]

 

count { it }

✔ 의미

조건이 true인 개수 세기

listOf(true, false, true).count { it } // 2

 

반응형