https://www.acmicpc.net/problem/1592
์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(bf.readLine());
/*
* 1 ~ N๊น์ง ์๊ณ๋ฐฉํฅ์ผ๋ก ์๋๋ค.
* ๊ณต์ ๋์ง๋ฉฐ ๋ฐ๋ณตํ๊ณ , ํ ์ฌ๋์ด ๊ณต์ M๋ฒ ๋ฐ์ผ๋ฉด ๊ฒ์์ด ์ข
๋ฃ(ํ์ฌ ๋ฐ์ ๊ณต๋ ํฌํจ)
* ๊ณต์ ๋์ง๋, ํ์ฌ ๋ฐ์ ํ์๊ฐ ํ์ -> ์๊ณ๋ฐฉํฅ์ผ๋ก L๋ฒ์งธ ์ฌ๋์๊ฒ, ์ง์ -> ๋ฐ์๊ณ๋ฐฉํฅ์ผ๋ก L๋ฒ์งธ ์ฌ๋์๊ฒ ๊ณต๋์ง
*/
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int L = Integer.parseInt(st.nextToken());
int ballCount = 0;
int[] arr = new int[N+1];
int index = 1;
arr[1] = 1; // ํ์ฌ ๊ณต ํฌํจํ๋ฏ๋ก ์ฒซ ๋ฒ์งธ ์ฌ๋ +1
while(true) {
// ํ์ฌ ๋ฐ์ ์ฌ๋์ด ํ์๋ฒ ๋ฐ์์ ๊ฒฝ์ฐ -> ์๊ณ๋ฐฉํฅ(index + L)
// ํ์ฌ ๋ฐ์ ์ฌ๋์ด ์ง์๋ฒ ๋ฐ์์ ๊ฒฝ์ฐ -> ๋ฐ์๊ณ(index - L)
index = (arr[index] % 2 == 1) ? (index + L) : index - L;
// ๋ค์ ๋ฐ์ ์ฌ๋์ด ๋ฐฐ์ด์ ๋ฒ์ ๋ฒ์ด๋ฌ์ ๋(์๊ณ ๋ฐฉํฅ์ผ ๋)
if(index > N)
// ์ธ์๋งํผ ๋๋ ๋๋จธ์ง๊ฐ ๋ค์์ ๋ฐ๋ ์ฌ๋์
// index = 7, N = 5 ์ด๋ฉด ๋ค์์ 2๋ฒ์งธ ์ฌ๋์ด ๋ฐ์.
index %= N;
// ๋ค์ ๋ฐ์ ์ฌ๋์ด ๋ฐฐ์ด์ ๋ฒ์ ๋ฒ์ด๋ฌ์ ๋(๋ฐ์๊ณ ๋ฐฉํฅ์ผ ๋)
else if(index < 1)
// 1๋ฒ์ด ๋ฐ์๊ณ๋ฐฉํฅ์ผ๋ก 4๋ฒ์๊ฒ ์ค์ผํ ๋ -> (-1) + 5 = 4
index += N;
arr[index] ++; // ๊ณต ๋ฐ๋ ์ฌ๋ ++
ballCount ++; // ๊ณต ๋์ง ํ์ ++
// ํ ์ฌ๋์ด ๊ณต์ M๋ฒ ๋ฐ์ผ๋ฉด ์ข
๋ฃ
if(arr[index] == M)
break;
}
System.out.println(ballCount);
bf.close();
}
}
๋ฌธ์ ์ดํด
๋ฌธ์ ๋ฅผ ํธ๋๋ฐ ์ข ๊ฑธ๋ ธ๋ค ...
์ผ๋จ ์กฐ๊ฑด์ ์๋์ ๊ฐ๋ค.
1. 1 ~ N๊น์ง ์ํ์ผ๋ก ์๊ณ๋ฐฉํฅ์ผ๋ก ์์์๊ณ ,
2. 1๋ฒ ์ฌ๋๋ถํฐ ํ์ฌ ๊ณต์ ๋ฐ์ ํ์๊ฐ ํ์์ด๋ฉด ์๊ณ ๋ฐฉํฅ์ผ๋ก L๋ฒ์งธ ์๋ ์ฌ๋์๊ฒ,
3. ํ์ฌ ๊ณต์ ๋ฐ์ ํ์๊ฐ ์ง์์ด๋ฉด ๋ฐ์๊ณ ๋ฐฉํฅ์ผ๋ก L๋ฒ์งธ ์๋์ฌ๋์๊ฒ ๊ณต์ ๋์ง๋ค.
4. ํ ์ฌ๋์ด ๊ณต์ M๋ฒ ๋ฐ์ผ๋ฉด ๊ฒ์์ ๋๋๋ค.(์ง๊ธ ๋ฐ์ ๊ณต๋ ํฌํจํ์ฌ ์ผ๋ค.)
ํ์ด
ํ์ฌ 1๋ฒ์๊ฒ ๊ณต์ด ์๊ณ , ์ด ๊ณต๋ ๋ฐ์๊ณต์ผ๋ก ํฌํจํ๋ฏ๋ก ์ฒซ ๋ฒ์งธ ์ฌ๋์ +1๋ก ์ค์ ํ๋ค.
* ํ์ฌ ๊ณต์ ๋ฐ์ ์ฌ๋์ด ๋ฐ์ ํ์๊ฐ ํ์์ผ ๊ฒฝ์ฐ -> ์๊ณ๋ฐฉํฅ์ด๋ฏ๋ก +L
* ํ์ฌ ๊ณต์ ๋ฐ์ ์ฌ๋์ด ๋ฐ์ ํ์๊ฐ ์ง์์ผ ๊ฒฝ์ฐ -> ๋ฐ์๊ณ๋ฐฉํฅ์ด๋ฏ๋ก -L์ ํด์ค๋ค.
* ๋ฐฐ์ด ๋ฒ์๋ฅผ ๋ฒ์ด๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด์ผ ํ๋ค.(1 ~ N๊น์ง ์ด๋ฏ๋ก N๋ณด๋ค ํฌ๊ฑฐ๋, 1๋ณด๋ค ์์๋)
* ์ ๋ฒ์์ ๋ง๊ฒ ์กฐ๊ฑด์ ์ค์ ํ๊ณ , ๋ค์ ๋ฐ๋ ์ฌ๋์ index๋ฅผ ๊ตฌํ๋ค.
* ๊ธฐํ ์ค๋ช ์ ์ฃผ์.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Codeforces] 959A: Mahmoud and Ehab and the even-odd game (0) | 2020.02.22 |
---|---|
[๋ฐฑ์ค] 3943๋ฒ: ํค์ผ์คํค ์์ด(๊ตฌํ, ์๋ฎฌ๋ ์ด์ ) (0) | 2020.02.21 |
[Codeforces] 935A: Fafa and his Company(brute force) (0) | 2020.02.21 |
[๋ฐฑ์ค] 2579๋ฒ: ๊ณ๋จ ์ค๋ฅด๊ธฐ(DP, ๋์ ๊ณํ๋ฒ) (0) | 2020.02.21 |
[Codeforces] 1097A: Gennady and a Card Game(brute force) (0) | 2020.02.21 |
๋๊ธ