WHAT I LEARNED/Algorithm

[프로그래머스 / 자바스크립트] x만큼 간격이 있는 n개의 숫자

보니bonnie 2022. 1. 24. 15:50
728x90

지독하다 지독해. 아침부터 지독한 문제를 만났다.

입출력 예를 찬찬히 뜯어보니

x값부터 시작해 x * n값까지의 숫자들의 나열을 구하라는 것이므로 '반복문' 사용될 것 같은 느낌 빡!

문제는 이 이해한걸 어떻게 코드로 변환하지..? 😂

 

첫번째로 정리했던 나의 코드 💡

function solution(x, n) {
    var answer = [];
    
    for (var i=1; i<=n; i++){
        answer += x * i
        
    }
    return answer
}

answer 선언과 return을 깔끔하게 제거하는 방법에 익숙해지고싶다..! 하지만 지금은 절대 못버려🙂...

 

i=0으로 넣으니까 나열이 0부터 시작되는 매직. 246이 아닌 0246...

그래서 1부터 시작되게끔 설정을 하고, 결과를 정리하니까 나왔다!

나왔긴 나왔는데

 

😭 "246810"으로 나왔다 😭

 

쉼표를 어떻게 넣어...? 리스트 형태는 어디 간거야....?

요만큼만 더 하면 될텐데.. 얼추 비슷하게 나와서 그런지 더 근질근질하다.

조금만 바꿔도 답안이 천차만별로 바뀌어서 크게 건들이지도 못하고 끙끙대는 중.

 

.

.

.

 

💡최종 코드

function solution(x, n) {
    var answer = [];
    for (let i = 1; i<=n; i++){
        answer.push(x*i);
    }
    return answer;
}

알고보니 행렬의 덧셈과 연관되는 문제였다. 뭔가 찝찝~하다 싶었는데!

행렬의 덧셈 문제를 풀었으면 좀 쉽게 접근했었을까 😂

구글링 결과 슬쩍 보고 다음에 공부해야지하며 지나갔던게 내 문제에서 이렇게 크게 작용하다니.. 반성해야겠다..

 

💪🏻 부족했던 점

  • var answer = [];  빈 리스트임을 인식해야겠다. 이 문제는 비어 있는 리스트에 넣어야하는 거였다!
    최종적으로 구현해야하는 방법을 찾는게 미숙하다. 그리고 그 구현방법들은 생각보다 단순하다.
  • .push 함수를 알지못한게 제일 큰 패인......

 

.push()  배열에! 데이터 값을 넣을 때!! 이용하는 것이라고 한다.

정말이지 이 문제에 찰떡인게 아닐 수가 없다..^^...

 

행렬의 덧셈 다시 풀러 가야지...

 

 

 

📍 출처 : https://programmers.co.kr/learn/courses/30/lessons/12954

 

코딩테스트 연습 - x만큼 간격이 있는 n개의 숫자

함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

programmers.co.kr

 

728x90