문제설명
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
주의사항
- absolutes의 길이는 1 이상 1,000 이하입니다.
- absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
- signs의 길이는 absolutes의 길이와 같습니다.
- signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.
입출력예시
코드
function solution(absolutes, signs) {
let answer = 0;
for(let i =0 ; i< absolutes.length; i++){
if(signs[i]=== false ){
absolutes[i]= -absolutes[i]
}
answer += absolutes[i]
}
return answer;
}
인기많고 간단한 코드↓
function solution(absolutes, signs) {
return absolutes.reduce((acc, val, i) => acc + (val * (signs[i] ? 1 : -1)), 0);
}
해석
signs와 absolutes의 같은 인덱스에 따라 +,- 가 붙기 때문에 for문을 돌려 간단하게 풀수 있었다.
한줄평
이 문제는 for문을 돌리면 풀수있다고 생각해서 reduce를 사용해서 한줄로 만들어보고싶었다. 하지만 만들지 못하였고, 다른 분의 레퍼런스를 보니 이해가 되었다. 메소드 사용은 언제쯤 익숙해질런지..ㅠㅠ
filter, map, reduce, forEach, indexOf, includes 잘 사용해보자
링크
https://programmers.co.kr/learn/courses/30/lessons/76501
프로그래머스 1단계 문제 풀이 현황
1번째- 키패트 누르기★ -어려움
2번째- 내적●
3번째- 폰켓몬★ -헷갈림
4번째- k번째수●
5번째- 체육복●
6번째- 음양구하기●
7번째- 완주하지 못한 선수●
8번째- 로또의 최고 순위와 최저 순위★ -다시 풀어봐야함
17번째- 두개 뽑아서 더하기●
48번째- x만큼 간격이 있는 n개의 숫자●
반응형
'개발 공부 > 알고리즘 개념+문제풀이' 카테고리의 다른 글
[알고리즘] 동적계획법(DP), 다이나믹 프로그래밍 개념정리 (0) | 2021.06.22 |
---|---|
[프로그래머스 2단계 문제] 기능개발 (0) | 2021.06.21 |
[알고리즘] 체육복_프로그래머스 1단계 (0) | 2021.06.20 |
[알고리즘] K번째수_프로그래머스 1단계 (0) | 2021.06.20 |
[알고리즘] 폰켓몬_프로그래머스 1단계 (0) | 2021.06.20 |
댓글