공부하는 히욤이

[BOJ] 1592. 영식이와 친구들 본문

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);
	}
}

'Algorithm > BaekJoon' 카테고리의 다른 글

[BOJ] 11724. 연결 요소의 개수  (0) 2020.04.11
[BOJ] 7576. 토마토  (0) 2020.04.11
[BOJ] 6588. 골드바흐의 추측  (0) 2020.02.13
[BOJ] 1929. 소수 구하기  (0) 2020.02.13
[BOJ] 2609. 최대공약수와 최소공배수  (0) 2020.02.10