node 출력방식대신 script 로 출력하였습니다.

 

 

원래 체스의 개수는 16개로 [1,1,2,2,2,8]개를 사용한다.

발견한 흰색 체크의 개수가 주어지면 기준점에서 몇 개를 더하거나 빼야만

원래의 체스 개수가 되는지 출력하는 문제이다.

 

 

📌 작성코드 (for문 사용)

<script>
  function solution(arr) {
    let origin = [1, 1, 2, 2, 2, 8], answer = [], minus;

    for (i = 0; i < arr.length; i++) {
      minus = (parseInt(origin[i])) - (parseInt(arr[i]))
      answer.push(minus)
    }
    return answer;
  }
  let arr = [2, 1, 2, 1, 2, 1]
  console.log(solution(arr))
</script>

 

우선 for문을 사용해서 풀면?

origin변수로 원래 초기 체스 값을 넣어주었다.

반복문을 사용하여 배열의 요소를 돌아주고

minus 변수에 원래 체스 개수 - 흰색 체스 개수를 해서 minus에 넣어준다.

배열에 push해주면 

필요한 체크 개수가 잘 출력.

 

이번엔 map을 사용해보자.

 

📌 작성코드

<script>
  function solution(arr) {
    let answer; origin = [1, 1, 2, 2, 2, 8]
    answer = origin.map((a, index) => {
      return a - arr[index]
    });
    return answer;
  }
  let arr = [2, 1, 2, 1, 2, 1]
  console.log(solution(arr))
</script>

 

map메소드는 새로운 데이터를 반환한다.

origin 초기값을 설정해주고, origin 배열을 a라는 새로운 배열로 만들어준다. 

map은 두번째 인자로 index를 전달 받아 arr[index] 에 집어넣고 a[index]에서 arr[index]를 빼준다.

'알고리즘 > 백준' 카테고리의 다른 글

[Javascript] 9498번 - 시험 성적  (0) 2022.09.09
[Javascript] 2588번 - 곱셈  (0) 2022.09.07
[Javascript] 10430번 - 나머지  (0) 2022.09.06
[Javascript] 10926번 - ??!  (0) 2022.09.05
[Javascript] 10869번 - 사칙연산  (0) 2022.09.05
복사했습니다!