← 실전 문제

한 사람씩 빠지는 원형 대기열

C++디버깅

사람을 1번부터 원형으로 세워요. 맨 앞 사람부터 한 명씩 세어서 step번째 사람을 제외해요. 그 다음 사람을 다시 첫 번째로 세며 같은 일을 반복해요. 한 사람만 남으면 그 번호를 반환해요.

int solution(int people, int step)가 요구한 값을 반환하도록 잘못된 한 줄만 수정해 주세요.

매개변수와 반환값

people은 140, step은 120이에요. 번호는 1people예요. step=1이면 현재 맨 앞 사람을 바로 제외해요. 반환값은 마지막 남은 1people의 번호예요.

예시

  1. people=5, step=2이면 3를 반환해요. 2→4→1→5번이 제외되어 3번이 남아요.
  2. people=4, step=3이면 1를 반환해요. 3→2→4번이 제외되어 1번이 남아요.

실행용 입출력

한 줄에 people step을 입력해요. main은 입력을 매개변수로 바꾸고 반환값을 출력하는 채점 하네스예요. 풀이 대상은 solution의 한 줄이에요.

예시 입력

5 2

예상 결과

3

예시 입력

4 3

예상 결과

1
핵심 개념
  • stack-queue: 먼저 들어온 항목과 다시 대기하는 항목을 구분해요.
  • loops: 다음 반복으로 이어지는 상태를 확인해요.
  • stl-vector: 벡터의 크기와 인덱스로 매개변수를 읽어요.

코드 작성과 채점은 로그인 후 이용해요

로그인하고 풀기