문제 접근

  1. +1일 때 -1일때 +10일때 -10일때 각각 조건을 정의한다.
  2. (index+1) - index === 1 || -1 || +10 || -10 일때 각각 if else구문 사용하여 풀기

내가 푼 코드

function solution(numLog) {
  let answer = "";
  for(let i = 0; i < numLog.length; i++) {
    if(numLog[i+1]-numLog[i] === 1) {
      answer += "w";
}else if(numLog[i+1]-numLog[i] === -1){
      answer += "s"
}else if(numLog[i+1]-numLog[i] === 10) {
      answer += "d";
}else if(numLog[i+1]-numLog[i] === -10){
      answer += "a"
}
  }
  return answer;
} 

다른 사람의 풀이1

function solution(numLog) {
    const actions = {
        "1": 'w',
        "-1": 's',
        "10": 'd',
        "-10": 'a'
    };

    let answer = "";
    for (let i = 1; i < numLog.length; i++) {
        const diff = numLog[i] - numLog[i - 1];
        if (actions.hasOwnProperty(diff.toString())) {
            answer += actions[diff]
        }
    }
    return answer;
}

diff의 값이 actions에 있나 확인을 하고 있으면 answer에 그 값을 넣어줘라~~!~

다른 사람의 풀이2

function solution(numLog) {
  let answer = ""
  for(let i=0;i<numLog.length;i++){
    switch(numLog[i+1]-numLog[i]){
      case 1:
        answer+="w"
        break;
      case -1:
        answer+="s"
        break
      case 10:
        answer+="d"
        break;
      case -10:
        answer+="a"
        break;
    }
}
return answer
}

🍀새로 알게 된 메소드🍀

hasOwnProperty : 객체의 속성 중 특정 속성이 있는지를 확인합니다. 이 메서드는 객체가 직접 소유한 속성을 확인한다. (객체에서 사용)
includes를 쓸 수도 있다고 생각했지만 includes는 배열이나 문자열 안에 특정 요소나 부분 문자열이 있는지를 확인한다. (배열, 문자열에서 사용)

const obj = {
   name: "John",
   age: 30
};

console.log(obj.hasOwnProperty('name')); // true
console.log(obj.hasOwnProperty('toString')); // false
profile
"열정"

0개의 댓글