코딩일지
작성자 | |||
성 명 | 최주희 | 작성일자 | 2022.02.03 |
세부 코딩 내용 | |||
활동 기간 | 2022.02.03 | ||
문제 | 머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요. | ||
나의 풀이 | function solution(numbers, k) { let numberOrder=k*2-2; let ArrayOrder=numberOrder % numbers.length if(numbers.length < numberOrder){ return numbers[ArrayOrder]; } return numbers[numberOrder] } |
||
결과 | 통과 | ||
다른 풀이 | function solution(numbers, k) { return numbers[(--k*2)%numbers.length]; } |
const solution = (numbers, k) => numbers[(k * 2 - 1) % numbers.length - 1] |
|
해석 | 증감 연산자를 사용하면 이렇게 반복해서 -1를 할 필요가 없다. | ||
키워드 | 코딩내용 | 생각 | |
1. 필요한 조건 정리
2. 풀이단계 정리
|
내가 쓴 식은 k*2-2 이다. 생각해보니 2(k-1)로 그렇다면 증감연산자를 이용할 수 있다는 것을 알 수 있었다. 이것은 알면서도 새로 알게된 신박한 방법이다. 그리고 생각해보니.. numbers.length < numberOrder 아닌 경우에도 그냥 나머지를 구하면 고대로 값이 나와서 if문으로 안나눠도 되겠구나…깊은 깨달음 |
||
문제주소
https://school.programmers.co.kr/learn/courses/30/lessons/120843
'프론트엔드로 가는 길 > 프로그래머스' 카테고리의 다른 글
36. 프로그래머스_2차원으로 만들기 (0) | 2023.02.05 |
---|---|
35. 프로그래머스_배열 회전시키기 (0) | 2023.02.05 |
33. 프로그래머스_점 위치 구하기 (0) | 2023.02.02 |
32. 프로그래머스_구슬을 나누는 경우의 수 (0) | 2023.02.01 |
31. 프로그래머스_가위바위보 (0) | 2023.01.31 |