본문 바로가기
TIL

[TIL] 자바스크립트 기본 문법 숙제

by 쾌횽 2023. 12. 29.
반응형

 

자바스크립트 1주차 숙제는 알고리즘 풀이로 되어있었다.

 

프로그래머스 문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

🧐나의 문제 풀이

 

function solution(absolute, signs) {
  let answer = [];
  for (let i = 0; i < signs.length; i++) {
    if (signs[i] === !false) {
      answer.push(absolute[i]);
    } else {
      answer.push(absolute[i] * -1);
    }
  }
  return answer.reduce((a, b) => a + b, 0)
}
solution([4, 7, 12], [true, false, true]);

 

빈 배열을 먼저 만들어 주고 반복문을 통해 signs의 배을 순회한다.

sings[i]의 false인것의 인덱스를 찾아서 absolute인덱스에 적용하고 그 값을 -1을 곱해서 음수로 나타낸다.

그리고 absolute의 값을 하나씩 빈배열에 push해 주면 [4, -7, 12]값이 나오는데, 이 배열을 reduce함수를 통해 합을 구해주었다.

🧐 모범 답안

function solution(absolutes, signs) {
    let answer = 0;
    for (let i = 0; i < absolutes.length; i++) {
        signs[i] ? answer += absolutes[i] : answer -= absolutes[i]
    }
    return answer;
}

 

🤩 느낀점

나는 왜 빈 배열을 만들어 가면서까지 배열의 형태로 값을 찾으려 했을까?

합을 구하는 문제이니 signs인덱스의 값을 통해 absolute의 값들을 더해주면 되는 문제였는데...

너무 복잡하게 생각했거나, 아님 아직 간단하게 풀 수 있는 로직을 생각해 낼 수 없었거나.. 후자인듯...

문제를 많이 풀어봐서 코팅뇌를 장착할 수 있도록 노력하자 ㅠ

반응형

'TIL' 카테고리의 다른 글

[TIL] THIS  (0) 2024.01.03
[TIL] 스코프 (Scope)  (1) 2024.01.02
[TIL] SQL과 기본쿼리 3  (1) 2023.12.27
[TIL] SQL과 기본 쿼리 2  (0) 2023.12.26
[TIL] SQL과 기본 쿼리  (1) 2023.12.22

댓글