๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/27172)
< ์ ๋๋๊ธฐ ๊ฒ์ >
๋ฌธ์ ํ์ด
๊ฐ ์นด๋์ ๊ฐ์ ๋ฐฐ์๊ฐ ๋ค๋ฅธ ์นด๋์ ์กด์ฌํ๋์ง ํ์ธํ๋ค.
* ๋ฌธ์ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ๋ฅผ ๋จผ์ ํ์ธํ์๋๋ฐ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๊ฐ ์ ํ์์๋ค. ๊ทธ๋์ ๋จ์ํ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์์์ธ์ง ํ๋ณํ๊ณ ์นด๋ ๋ ๊ฐ์ ๊ฐ์ด ๋ค ์์๋ผ๋ฉด ๋ฌด์น๋ถ์ธ ๊ฒ์ ํ์ฉํ๋ ๊ฒ์ธ ์ค ์์๋ค. ์ง์ ๊ฐ์ ๋๋ ์ ํ๋จํ ๊ฒฝ์ฐ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ค. ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ๋ ์ค๋ฅด์ง ์์ ์ฐพ์๋ณด๋ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด ์๊ณ ๋ฆฌ์ฆ ๋ฐฉ์์ฒ๋ผ ๊ฐ์ ๋ฐฐ์๋ฅผ ๊ตฌํ๋ ๊ฒ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ด์๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class _27172_ { // ์ ๋๋๊ธฐ ๊ฒ์
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int n = Integer.parseInt(bf.readLine());
int card[] = new int[n];
int result[] = new int[1000001];
boolean arr[] = new boolean[1000001];
int max = 0;
st = new StringTokenizer(bf.readLine());
for (int i = 0; i < n; i++) {
card[i] = Integer.parseInt(st.nextToken());
arr[card[i]] = true;
max = Math.max(card[i], max);
}
for (int i = 0; i < n; i++) {
for (int j = card[i] + card[i]; j <= max; j += card[i]) {
if (arr[j]) {
result[card[i]] += 1;
result[j] -= 1;
}
}
}
for (int i = 0; i < n; i++) {
bw.write(result[card[i]] + " ");
}
bw.flush();
}
}
๋ณ์)
n : ํ๋ ์ด์ด์ ์
card : ํ๋ ์ด์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ์นด๋์ ์ ํ ์
result : ํ๋ ์ด์ด์ ์ ์
arr : ๊ฐ์ง๊ณ ์๋ ์นด๋ ์ฌ๋ถ
max : ์นด๋์ ์ต๋๊ฐ
ํ๋ ์ด์ด์ ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ๊ฐ ํ๋ ์ด์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ์นด๋์ ์ ํ ์๋ฅผ ์ ๋ ฅ๋ฐ์ card ๋ฐฐ์ด์ ์ ์ฅํ๋ค. ์นด๋์ ์ ํ ์๋ฅผ ์ ๋ ฅ๋ฐ์ผ๋ฉด์ ์ด ์นด๋ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ ๋ํ๋ด๊ธฐ ์ํด arr ๊ฐ์ true๋ก ์ ์ฅํ๋ค. ์นด๋ ๊ฐ ์ค ์ต๋๊ฐ์ ๊ตฌํ๋ค.
๊ฐ ํ๋ ์ด์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ์นด๋๋ฅผ ์ํํ๋ฉด์ ๊ทธ ๊ฐ์ ๋ฐฐ์๋ฅผ ๊ตฌํ๋ค. ๊ฐ์ ๋ฐฐ์๊ฐ ๋ค๋ฅธ ์ฌ๋์ด ๊ฐ์ง๊ณ ์๋ ์นด๋ ๊ฐ์ด๋ผ๋ฉด ์์ ์ 1์ ์ ํ๋ํ๊ณ ์๋๋ฐฉ์ 1์ ์ ์๋๋ค.
์ต์ข ๊ฐ ํ๋ ์ด์ด์ ์ ์๋ฅผ ์ถ๋ ฅํ๋ค.

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 1730_ํํ (1) | 2024.03.27 |
---|---|
[Baekjoon] 2167_2์ฐจ์ ๋ฐฐ์ด์ ํฉ (0) | 2024.03.26 |
[Baekjoon] 10434_ํ๋ณตํ ์์ (1) | 2024.03.22 |
[Baekjoon] 6219_์์์ ์๊ฒฉ (0) | 2024.03.21 |
[Baekjoon] 8896_๊ฐ์ ๋ฐ์ ๋ณด (0) | 2024.03.20 |