개발로그필름

[프로그래머스] 공 던지기 javascript 본문

coding test/프로그래머스

[프로그래머스] 공 던지기 javascript

yuullog 2023. 4. 26. 14:13
728x90
반응형
SMALL

https://school.programmers.co.kr/learn/courses/30/lessons/120843

 

프로그래머스

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

programmers.co.kr

 

 

문제

 

나의 풀이

function solution(numbers, k) {
    var answer = 0;
    var idx = 0;
    for(i=0; i<k; i++){        
        if(idx > numbers.length - 1) {
            idx = idx - numbers.length
        }
        answer = numbers[idx]
        idx+=2;        
    }
    return answer;
}

k번째로 공 던지는 사람을 구하는 문제이므로 k만큼 반복문을 돌린다

idx 초기값을 0으로 주고 idx는 numbers의 idx이다

반복문 한 사이클을 돌때마다 idx는 2씩 증가하는데 공을 바로 옆사람한테 주는게 아니라 한사람 건너뛰고 주기 때문이다

그렇게 idx를 2씩 증가 시키다보면 본래 numbers 배열 length보다 커지는 경우가 발생하는데 

그럴땐 if문을 써서 numbers.length만큼 빼준 idx를 업데이트 시킨다

반복문이 끝나면 answer return

 

 

다른 사람 풀이

function solution(numbers, k) {
    return numbers[((2 * (k -1))) % numbers.length];
}

엄청나게 머리 싸매며 코드 짰는데

다른 사람 풀이로 한 줄 나온거 보며 헉 했지만,,,?

꾸준히 하면 언젠가 나도 이 수준에 도달하리라 생각하며 공부해본다

---------

저렇게 한줄로 코딩을 하면 답이 당연히 나온다. 저 수식에 하나하나 대입해서 구하면 답이 나온다

하지만 어떻게 저 식을 생각해냈는지는 아직 잘 모르겠다,, 훗날 다시 보면 바로 이해되는 날이 오기를,,

반응형
LIST
Comments