๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/21920)
< ์๋ก์ ํ๊ท >
๋ฌธ์ ํ์ด
์ต๋๊ณต์ฝ์๋ฅผ ํ์ฉํ์ฌ ์๋ก์์ธ์ง ํ๋จํ๋ค. ์ต๋๊ณต์ฝ์๊ฐ 1์ธ ๊ฐ๋ค์ ๊ตฌํด ํ๊ท ์ ๊ตฌํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class _21920_ { // ์๋ก์ ํ๊ท
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int n = Integer.parseInt(bf.readLine());
st = new StringTokenizer(bf.readLine());
int arr[] = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
int x = Integer.parseInt(bf.readLine());
long sum = 0;
int cnt = 0;
for (int i = 0; i < n; i++) {
if (gcd(arr[i], x) == 1) {
sum += arr[i];
cnt += 1;
}
}
System.out.println(sum / (double) cnt);
}
private static int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
}
๋ณ์)
n : ์ ๋ ฅ๋ ์๋ค์ ๊ฐ์
arr : ์์ด
x : X
sum : ์๋ก์์ธ ์์ ํฉ
cnt : ์๋ก์์ธ ์ ๊ฐ์
์ ๋ ฅ๋ ์๋ค์ ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ์์ด์ arr ๋ฐฐ์ด์ ์ ์ฅํ๊ณ X๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. arr ๋ฐฐ์ด์ ํ์ํ๋ฉด์ gcdํจ์ ํธ์ถ์ ํตํด x์ ์๋ก์์ธ์ง ํ๋ณํ๋ค. ์ต๋๊ณต์ฝ์ ๊ฐ์ด 1์ด๋ผ๋ฉด ์๋ก์์ด๋ฏ๋ก sum์ ๊ฐ์ ๋ํ๊ณ cnt๋ฅผ 1 ์ฆ๊ฐ์ํจ๋ค. ์ต์ข sum/cnt๋ฅผ ์ถ๋ ฅํ๋ค.
gcd(int a, int b)
b๊ฐ 0์ด๋ผ๋ฉด a๋ฅผ ๋ฐํํ๋ค.
gcd(b, a% b)๋ฅผ ๋ฐํํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 11292_ํค ํฐ ์ฌ๋ (0) | 2024.06.04 |
---|---|
[Baekjoon] 1270_์ ์ - ๋ ๋ฐ๋จน๊ธฐ (0) | 2024.06.03 |
[Baekjoon] 3054_ํผํฐํฌ ํ๋ ์ (0) | 2024.05.29 |
[Baekjoon] 9324_์ง์ง ๋ฉ์์ง (0) | 2024.05.28 |
[Baekjoon] 11504_๋๋ ค ๋๋ ค ๋๋ฆผํ! (0) | 2024.05.27 |