Lv 1. 완주하지 못한 선수

박하린·2021년 4월 30일
0

프로그래머스

목록 보기
1/42

📚 문제

해시 - 완주하지 못한 선수
https://programmers.co.kr/learn/courses/30/lessons/42576?language=javascript

💡 접근

객체 변수를 선언해서 완주한 선수들의 value 값은 0이 되도록 하고,
완주하지 못한 선수들의 value 값은 1이 되도록해서 결과적으로 value값이 1인 key값을 반환하는 코드를 구현하였다.

⌨️ 코드

function solution(participant,completion){
    const participantObj = {};

    for (const p of participant){
        // 중복된 선수 이름의 value 값을 +1 한다.
        if (participantObj[p] == 1)
            participantObj[p] += 1;
        
        // 중복이 아닐 경우 value = 1
        else participantObj[p] = 1;
    }

    for (const c of completion){
        // 완주한 선수들의 value값만 -1하면 완주하지 못한 선수의 value값은 1이 된다.
        if (participantObj[c])
            participantObj[c] -= 1;
    }

    return Object.keys(participantObj).filter(element => participantObj[element] == 1)[0]; // [0] 처리를 해주지 않으면 배열로 반환되기 때문에 문자열 반환처리를 해준다.
}

✅ 메소드 정리

Object.keys()

  • 주어진 객체 자신의 프로퍼티 중 key값 즉, 열거가능한 속성들의 이름의 배열을 반환한다.
  • syntax
    • Object 객체에 keys 메서드를 호출하고 파라미터로 key 값을 알아내고자하는 객체를 넘겨준다.
	Object.keys(obj)
  • ex)
        const object1 = {
          a: 'somestring',
          b: 42,
          c: false
        };

        console.log(Object.keys(object1));
        // expected output: Array ["a", "b", "c"]

📝 리뷰

객체 key-value 속성을 이용해서 쉽게 풀 수 있었던 문제. 해시에 대해선 아직 공부해봐야겠다

profile
깃허브: https://github.com/khakaa

0개의 댓글

관련 채용 정보