[프로그래머스] 외계어 사전

zzzzzang_gu·2023년 4월 13일
0

알고리즘

목록 보기
10/10

💡 내 풀이

function solution(spell, dic) {
    var answer = 0;
    
    for(let j = 0;j<dic.length;j++){
        let chk = 0
        for(let i =0;i<spell.length;i++){
            if(dic[j].includes(spell[i])){
                chk++;
            }
        }
        if(chk == spell.length) {
            answer = 1;
            return answer
        } else {
            answer = 2;
        }
    }
    
    return answer;
}

이중 포문을 이용해 주어진 단어 사전 dic의 배열을 돌고 그 배열이 spell 요소만큼 for문을 다시 돌며 spell 요소를 가지고 있을경우 chk 변수를 ++ 해주고 마지막에 chk 와 spell의 길이가 같다면 1을 리턴해주는 방식으로 문제에 접근했다.

💡 다른 사람 풀이


function solution(p, d) {
    return d.some(s => p.sort().toString() == [...s].sort().toString()) ? 1 : 2;
}

some() 메서드는 처음 알았다. some() 메서드는 배열안의 어떤 요소라도 주어진 판별 함수를 하나라도 통과하는지 테스트 한다. 만약 배열에서 주어진 함수가 true를 반환하면 true를 반환한다.

위 문제풀이는 주어진 사전 단어 배열을 순회하며 sort로 순서를 정렬하고 하나라도 같은것이 있으면 1을 리턴하고 아니면 2를 리턴하는 방법이다. some() 메서드와 sort() 메서드를 사용해 간단하게 풀 수 있는게 대단하다고 생각하고... 오늘도 하나 더 배웠다.

profile
프론트엔드 개발자가 되겠습니다🔥

0개의 댓글