Coding Test/HackerRank

HackerRank 문제풀이 - 9 (Hash Tables: Ransom Note)

범데이 2023. 6. 11. 17:13
728x90

1. 문제

문제 구조는 다음과 같다.

  • 주어진 두 A, B string 배열을 비교하여, A배열에서 단어를 완벽히 사용하여 B 배열의 문장을 완성할 수 있는지 확인하여, 그 여부를 출력하는 간단한 문제이다.

 

2. 문제 풀이

2.1 풀이 과정

function checkMagazine(magazine, note) {
    // Write your code here
    var result = true;
    note.forEach(str =>{
        const idx = magazine.indexOf(str);
        if(idx == -1){
            result = false;
            return;
        } else {
            magazine.splice(idx, 1);
        }
    });
    
    console.log(result? "Yes": "No");
}

풀이 과정은 다음과 같다.

  • “result” 변수의 초기값을 true로 설정한다.
  • “note” 배열에 들어있는 “str”값을 순회한다.
    • “magazine” 배열에 존재하지 않는 “str”값이면 “result” 값을 false로 설정하고 순회를 종료한다.
    • “magazine” 배열에 존재하는 “str”값이면 해당 배열에서 값을 제거하고, 순회를 이어간다.
  • 순회가 종료되면 “result”변수의 값에 따라 “Yes” 혹은 “No”를 출력한다.

 

2.2 풀이 결과

Hash Table 카테고리에서 쉬운 난이도로 제공되는 문제인지라,

어렵지 않게 통과하였다.

반응형