본문 바로가기
알고리즘/Programmers

[TIL] 2023.04.02 Programmers 문제 풀기

by heereal 2023. 4. 2.

Today I Learned

  • Programmers 문제 풀기
  • 기술면접 답변 정리

 


Programmers 문제 풀기

공 던지기

나의 풀이

function solution(numbers, k) {
    let answer = (2*k-1) % numbers.length;
    return answer === 0 ? numbers.length : answer;
}

처음에는 뭔가 for문을 써야 하나 고민했지만 문제를 테스트 케이스를 직접 손으로 써보며 풀어보니 패턴이 보였다. 그래서 처음에는 (2*k-1) % numbers.length로 답을 써서 제출했는데 케이스 2개가 통과되지 않아서 고민했는데 (2*k-1) % numbers.length의 값이 0이 나올 때 예외처리를 추가해 주니 해결되었다.

 

 

다른 사람의 풀이

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

나도 이렇게 풀었었는데 왜 통과하지 못했던 건지 궁금했는데 (2*k-1)을 (2*(k-1))로 수정하니까 테스트 케이스를 모두 통과할 수 있었다. 그리고 k-1을 --k로 표현하면 더 간단해진다.

 


회고

오늘도 기술면접 답변 노션에 열심히 정리 중. 면접 답변만 준비하는 게 아니라 기초 지식 쌓는 데도 많은 도움이 된다!

 

 

댓글