프로그래머스 코딩테스트

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

2023. 6. 8. 10:20
목차
  1. 문제 설명
  2. 제한사항
  3. 풀이

문제 설명

머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요.
 

제한사항

2 < numbers의 길이 < 100 0 < k < 1,000 numbers의 첫 번째와 마지막 번호는 실제로 바로 옆에 있습니다. numbers는 1부터 시작하며 번호는 순서대로 올라갑니다.
 

풀이

음.. 그러니까 [1,2,3,4,5] 이렇게 서서 1번은 3번, 3번은 5번, 5번은 2번 이런식으로 진행되는거 같다.
동그랗게 서서 한명 건너뛰고 패스한다고 생각하면 편할듯
그때 k번째 공을 "던지는" 사람의 번호를 return 해야한다.
 

const solution = (numbers, k) => {
    let ballIdx = 0; // 현재 공의 위치
    let arr = []; // 던진 사람과 받는 사람을 구분하기 위해 배열 생성
    for(let i = 0; i < k; i ++){ // k번 공을 던져야 하므로 for문 작성
        arr = []; // for문이 시행될때, (공이 던져질때마다 초기화)
        arr.push(numbers[ballIdx]) // 공을 던진사람 ( 현재 공을 가지고 있는 사람 )을 배열에 추가 
        ballIdx = (ballIdx + 2) % (numbers.length); // 공의 인덱스에 2를 더하고, 인원수로 나눈 나머지
        arr.push(numbers[ballIdx]) // 받은 사람을 배열에 넣어준다. 
    }
    
    return arr[0]; // 던진 사람 리턴
}
저작자표시 (새창열림)
  1. 문제 설명
  2. 제한사항
  3. 풀이
'프로그래머스 코딩테스트' 카테고리의 다른 글
  • [프로그래머스] 세균증식
  • [프로그래머스] 옷가게 할인 받기
  • [프로그래머스] 치킨 쿠폰
  • [프로그래머스] 안전지대
FE Dev. 은옥
FE Dev. 은옥
프론트엔드 개발자의 소소한 블로그
Web dev!프론트엔드 개발자의 소소한 블로그
FE Dev. 은옥
Web dev!
FE Dev. 은옥
전체
오늘
어제
  • WEB (116)
    • Javascript (14)
    • Nest.JS (2)
    • 프로그래머스 코딩테스트 (67)
    • 튜토리얼 (28)
    • 작업물 (4)
    • 독서록 (1)

최근 글

인기 글

hELLO · Designed By 정상우.
FE Dev. 은옥
[프로그래머스] 공 던지기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.