Tags
- ๊ทธ๋ํ ์ด๋ก
- ๋ฐฑํธ๋ํน
- PGM
- ๊ทธ๋ํ ํ์
- Python
- Brute Force Algorithm
- ์ ๋ ฌ
- dfs
- ๊ตฌํ
- BOJ
- ์๋ฎฌ๋ ์ด์
- ๊น์ด ์ฐ์ ํ์
- sort
- ์ ์๋ก
- ๋๋น ์ฐ์ ํ์
- SpringBoot
- Java
- Study
- LV2
- ๋ฌธ์์ด
- DP
- CodingTest
- stack
- ์ํ
- greedy
- BFS
- queue
- ์๋ฃ๊ตฌ์กฐ
- ๊ต์ฌ
- Dynamic Programming
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_1057 : ํ ๋๋จผํธ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- n๋ช
์ ์ฐธ๊ฐ์ ์ค์ ๋ ์ฌ๋์ ๋ฒํธ๋ฅผ ์
๋ ฅ๋ฐ๋๋ค.
- 2๋ช ์ฉ ๊ฒฝ๊ธฐ๋ฅผ ์งํํ๋ฉฐ ์ด๊ธฐ๋ฉด ์ฌ๋ผ๊ฐ๋ค.
- n์ด ํ์์ฌ์ ํผ์ ๋จ๋ ๋ง์ง๋ง ์ ์๋ ๋ถ์ ์น์ผ๋ก ์ฌ๋ผ๊ฐ๋ค.
- ์ฐธ๊ฐ์ ์ n์ด 1์ด ๋ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
- ๋ ์ฌ๋์ ๋ฌด์กฐ๊ฑด ์น๋ฆฌํ๋ค.
- ๋ ์ฌ๋์ด ๋ง๋๋ ๋ผ์ด๋ ์๋ฅผ ์ถ๋ ฅํ๋ค.
- ๋ง๋์ง ๋ชปํ๋ ๊ฒฝ์ฐ๋ -1์ ์ถ๋ ฅํ์ง๋ง, ๊ทธ๋ฐ ๊ฒฝ์ฐ๋ ์๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int a = sc.nextInt();
int b = sc.nextInt();
int round = 0;
ArrayList<Integer> arr = new ArrayList<>();
for (int i = 1; i <= n; i++) {
if (i == a || i == b)
arr.add(1);
else
arr.add(0);
}
while (n > 1) {
round++;
boolean flag = false;
ArrayList<Integer> temp = new ArrayList<>();
for (int i = 0; i < n/2; i++) {
if (arr.get(i*2) == 1 && arr.get(i*2+1) == 1) {
flag = true;
break;
}
else if (arr.get(i*2) == 1 || arr.get(i*2+1) == 1)
temp.add(1);
else
temp.add(0);
}
if (flag)
break;
if (n % 2 != 0) {
temp.add(arr.get(n-1));
n /= 2;
n++;
}
else
n /= 2;
arr = temp;
}
System.out.println(round);
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ArrayList์ ๋ ์ฌ๋์ ๋ฒํธ ์ธ๋ฑ์ค๋ 1์ ์ ์ฅํ๊ณ , ๋๋จธ์ง๋ 0์ ์ ์ฅํ๋ค.
- n์ด 1์ด ๋ ๋๊น์ง ๋ฐ๋ณตํ์ง๋ง n์ ์ต์ 2๊ฐ ๋๋ค.
- ์์ ArrayList์ธ temp์ ๋ค์ ์ฐธ๊ฐ์ ๋ชฉ๋ก์ n/2๊ฐ ์ ์ฅํ๋ค.
- ๋ ์ธ๋ฑ์ค๊ฐ ๋ชจ๋ 1์ด๋ฉด ๋ฐ๋ณต์ ์ข ๋ฃํ๊ณ round๋ฅผ ์ถ๋ ฅํ๋ค.
- ํ ์ธ๋ฑ์ค๋ผ๋ 1์ด๋ฉด temp ์ 1์ ์ ์ฅํ๋ค.
- ๋ ์ธ๋ฑ์ค๊ฐ ๋ชจ๋ 0์ด๋ฉด temp์ 0์ ์ ์ฅํ๋ค.
- ํ์ฌ ์ฐธ๊ฐ์์ n์ด ํ์์๋ค๋ฉด ๋ง์ง๋ง ๋ถ์ ์น ์ฐธ๊ฐ์๋ฅผ temp์ ์ ์ฅํ๋ค.
- ํ์ ์ง์๋ฅผ ์๊ฐํด ๋ค์ ์ฐธ๊ฐ์ ์ n์ ๋ณ๊ฒฝํ๋ค.
- arr๋ฅผ temp๋ก ๋ณ๊ฒฝํ๋ค.
๐ธ end ๐ธ
- ์ฒ์์ ArrayList์ remove๋ฅผ ์ฌ์ฉํด ๋ณต์ฌ๊ฐ ํ์ ์์๊ฒ์ผ๋ก ์๊ฐํ์ง๋ง, ์ธ๋ฑ์ค๊ฐ ๋ฐ๋๋๊ฒ ์ถ์ ์ด ๋ณต์กํด์ง ๊ฒ ๊ฐ์ arr = temp; ํ์์ผ๋ก ํ์ดํ๋ค.
- ๋คํํ ์๊ฐ์ด๊ณผ๊ฐ ๋์ง ์์๋ค.
- n์ด 10๋ง์ผ๋ก ๋น๊ต์ ์ฌ์ ๋ก์ด ๋ฒ์์ด์ ๊ฐ๋ฅํ๋ ๊ฒ ๊ฐ๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_1072 : ๊ฒ์ (0) | 2023.01.04 |
---|---|
BOJ_1063 : ํน (0) | 2023.01.04 |
BOJ_1004 : ์ด๋ฆฐ ์์ (0) | 2022.12.31 |
BOJ_1205 : ๋ฑ์ ๊ตฌํ๊ธฐ (0) | 2022.12.30 |
BOJ_11656 : ์ ๋ฏธ์ฌ ๋ฐฐ์ด (0) | 2022.12.30 |