본문 바로가기
코딩테스트/프로그래머스

프로그래머스 내적 해설, 문제풀이 과정, 인기 있는 문제풀이

by 코드스니펫 2023. 11. 16.
반응형

프로그래머스 내적 해설, 문제풀이 과정, 인기 있는 문제풀이

 

프로그래머스 로고

 

프로그래머스 내적 문제 소개와 해설, 필자의 문제풀이 과정과 가장 인기 있던 문제풀이에 대해 소개하겠습니다. 아래 풀이 과정을 보면서 코딩에 있어서 유익한 인사이트를 얻길 바랍니다.

 

 

프로그래머스 내적 문제

 

 

프로그래머스

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

programmers.co.kr

(프로그래머스 내적 문제 직접 풀어보세요!)

 

알고리즘 문제인 "내적"은 두 배열의 내적값을 계산하는 문제입니다. 주어진 배열 a와 b의 길이는 1 이상 1,000 이하이며, 배열의 각 요소는 -1,000 이상 1,000 이하의 정수입니다.

 

문제 해결 방향

이 문제를 해결하기 위해서는 각 배열의 같은 인덱스에 위치한 요소들을 곱한 후 모두 더하는 연산을 수행해야 합니다.

 

 

필자의 문제풀이 해설

 

 

필자의 해결 방법은 함수를 활용하여 각 배열의 요소를 곱하고, 그 결과를 누적하여 반환하는 방식입니다. map 함수를 사용하여 각 요소를 곱하고, reduce 함수를 활용하여 덧셈 연산을 수행합니다.

 

function solution(a, b) {
  return a
    .map((x, y) => x * b[y])
    .reduce((acc, cur) => {
      return acc + cur;
    }, 0);
}

 

 

인기있는 문제풀이

 

다른 개발자의 해결 방법은 reduce 함수를 주로 활용하여 문제를 해결했습니다. 이 방식은 배열의 길이만큼 반복하면서 각 요소를 곱하고 덧셈을 수행하는데, reduce 함수의 인덱스를 활용하여 간결하게 문제를 해결했습니다.

 

function solution(a, b) {
    return a.reduce((acc, _, i) => acc += a[i] * b[i], 0);
}

 

이 방법은 코드의 길이를 더욱 줄일 수 있어서, 코드의 가독성을 높일 뿐만 아니라 효율적인 문제 해결이 가능합니다.

 

 

끝으로

 

이 문제는 간단한 듯 하지만 배열의 요소를 활용한 연산을 통해 정확한 결과를 도출해야 하는 알고리즘 문제입니다. 함수를 활용하는 방법과 reduce 함수를 이용하는 방법은 각자의 장단이 있지만, 코드의 가독성과 효율성을 고려하여 적절한 방법을 선택하는 것이 중요하다고 생각합니다. 알고리즘 문제를 해결하면서 여러 가지 방법을 시도해보고 익숙해지면, 코드를 작성하는 데 있어서 효율적인 패턴을 습득할 수 있을 것으로 기대합니다.

 

▼ 아래 글도 읽어보세요! ▼

 

 

알고리즘 학습의 중요성, 알고리즘 공부하는 이유, 효율적인 학습 방법

알고리즘 학습의 중요성, 알고리즘 공부하는 이유, 효율적인 학습 방법 알고리즘이 너무 어려운데 왜 해야 할까요? 이러한 의문을 풀기 위해 알고리즘의 필요성과 효율적인 학습 방법에 대해 알

lemonlog.tistory.com

 

 

TIL (Today I Learned)의 중요성과 활용 방법

TIL(Today I Learned)의 중요성과 활용 방법 프로그래밍과 개발 분야에서 지식을 쌓고 늘리는 것은 끊임없는 과정입니다. 이 글에서는 TIL(Today I Learned)이라는 개념에 대해 자세히 살펴보고, 왜 이것이

lemonlog.tistory.com