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로 표현하면 더 간단해진다.
회고
오늘도 기술면접 답변 노션에 열심히 정리 중. 면접 답변만 준비하는 게 아니라 기초 지식 쌓는 데도 많은 도움이 된다!
'알고리즘 > Programmers' 카테고리의 다른 글
[TIL] 2023.04.04 기술면접 스터디, Programmers 문제 풀기 (0) | 2023.04.04 |
---|---|
[TIL] 2023.04.03 기술면접 스터디, Programmers 문제 풀기 (0) | 2023.04.03 |
[TIL] 2023.04.01 Programmers 문제 풀기 (0) | 2023.04.02 |
[TIL] 2023.03.31 기술면접 스터디, Programmers 문제 풀기 (0) | 2023.03.31 |
[TIL] 2023.03.30 기술면접 스터디, Programmers 문제 풀기 (0) | 2023.03.30 |
댓글