programmers

코딩 테스트 / 배열 유사도, 가위 바위 보

이미사용 2023. 5. 24. 01:21
명언
-
728x90
반응형

배열 유사도

 

※풀이

1. s1.length는 문자열 s1의 길이를 나타냅니다.
2. s2.length는 문자열 s2의 길이를 나타냅니다.
3. [...s1, ...s2]는 문자열 s1과 s2의 문자들을 하나의 배열로 합칩니다. 이 때, 스프레드 연산자(...)를 사용하여 문자열을 개별 문자로 분리합니다.
4. new Set([...s1, ...s2])는 중복을 허용하지 않는 유일한 값만을 포함하는 Set 객체를 생성합니다. Set 객체는 중복된 값을 허용하지 않으므로, 중복된 문자들은 제거됩니다.
5. new Set([...s1, ...s2]).size는 Set 객체의 크기, 즉 유일한 문자들의 개수를 반환합니다.
6. s1.length + s2.length - new Set([...s1, ...s2]).size는 두 문자열의 길이를 합한 후, 중복되지 않은 문자들의 개수를 빼서 최종 결과를 반환합니다.

ex1)

    {
        function solution(s1, s2) {
            return s1.length + s2.length - new Set([...s1, ...s2]).size
        }
        console.log(solution(["a","b","c"], ["com", "b", "d", "p", "c"]));
        //2
    }

ex2)

    {
        function solution(s1, s2) {
            return s1.length + s2.length - new Set([...s1, ...s2]).size
        }
        console.log(solution(["n","omg"], ["m", "dot"]));
        //0
    }

 

 

가위 바위 보

※풀이

1. answer 변수는 다음과 같은 키-값 쌍을 가지는 객체입니다: {'0':'5', '2':'0', '5':'2'}. 이 객체는 rsp 문자열의 각 문자에 대해 대응하는 문자를 정의합니다.
 2. [...rsp]는 문자열 rsp를 배열로 변환합니다. 스프레드 연산자(...)를 사용하여 문자열을 개별 문자로 분리합니다.
3. .map(v => answer[v])는 배열의 각 요소를 순회하면서 해당 요소에 대응하는 answer 객체의 값을 가져옵니다. 이 때, v는 각 요소를 나타냅니다.
4. .join('')은 배열의 모든 요소를 빈 문자열로 연결하여 하나의 문자열로 만듭니다.

 

ex1)

    {
        function solution(rsp) {
            var answer = {'0':'5', '2':'0', '5':'2'};
            return [...rsp].map(v=>answer[v]).join('')
        }
        console.log(solution("2"));
        //0
    }

ex2)

    {
        function solution(rsp) {
            var answer = {'0':'5', '2':'0', '5':'2'};
            return [...rsp].map(v=>answer[v]).join('')
        }
        console.log(solution("205"));
        //052
    }

 

 

 

 

출처:https://school.programmers.co.kr/