Algorithm/BaekJoon
[BOJ] 1592. 영식이와 친구들
히욤이
2020. 4. 10. 23:29
BaekJoon 1592. 영식이와 친구들
* 문제의 저작권은 BOJ 및 문제를 만든 사람에게 있습니다.
[문제 접근]
1번이 항상 던지기 때문에 배열에 1번째를 넣어주고 시작했다.
공을 받은 사람의 횟수가 짝수 일 때와 홀수 일 때만 잘 구해주면 쉬운 문제인 것 같다.
알고리즘 분류가 유클리드 호제법으로도 되어 있는데 그냥 while문이나 if문으로도 쉽게 풀 수 있는 것 같다.
[코드]
import java.util.Scanner;
public class Main_1592 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt(); //학생 수
int M = sc.nextInt(); //끝나는 수
int L = sc.nextInt(); //L번째로 던질 사람
int[] get = new int[N+1];
int ball = 1;
int cnt = 0;
get[1] = 1;
while (true) {
if (get[ball] == M) {
break;
}
cnt++;
//짝수 일 때
if (get[ball]%2 == 0) {
if (ball - L <= 0) {
ball = ball + N - L;
} else {
ball = ball-L;
}
get[ball]++;
} else {
if (ball + L > N) {
ball = ball -N +L;
} else {
ball = ball+L;
}
get[ball]++;
}
}
System.out.println(cnt);
}
}