반응형
문제: https://www.acmicpc.net/problem/9613
풀이:
유클리드 호제법을 사용해 GCD(최대공약수)를 구하는 함수를 만들고, 전체적으로 3중 for문을 사용해
입력된 모든 숫자의 최대공약수를 구해서 더해주면 된다.
정답:
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for (int i = 0; i < t; i++) {
long sum = 0;
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int n = Integer.parseInt(st.nextToken());
int[] arr = new int[n];
for (int j = 0; j < n; j++) {
arr[j] = Integer.parseInt(st.nextToken());
}
for (int j = 0; j < n; j++) {
for (int k = j + 1; k < n; k++) {
sum += gcd(arr[j], arr[k]);
}
}
sb.append(sum).append('\n');
}
System.out.println(sb.toString());
}
public static int gcd(int a, int b) {
while (b != 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
}
지금까지 파이썬으로 알고리즘 문제를 풀다가 자바로 넘어오게 되었다.
그 이유는 코딩 테스트에 파이썬을 지원하지 않는 기업도 몇몇 있었고, 여러 취업 관련 정보를 얻다 보니
전공자의 경우 파이썬 보다는 자바나 C++ 언어를 능숙하게 사용하는 것이 비전공자와의 차이점을 둘 수
있는 몇 안되는 방법이기 때문이다.
자바를 사용해 보니 확실히 파이썬이 코딩하기 쉬운 언어라는 생각이 들었다.
하지만 전공자라면 자바 또는 C++을 할 줄 알아야 살아남을 수 있다는 현실...
반응형
'Java > 코딩 테스트' 카테고리의 다른 글
그리디: 백준 2875 자바 대회 or 인턴 (0) | 2021.10.24 |
---|---|
다이나믹 프로그래밍(DP) : 백준 9095 자바(Java) 1, 2, 3 더하기 (0) | 2021.10.18 |
브루트 포스: 백준 1476 자바(Java) 날짜 계산 (0) | 2021.10.17 |
수학: 백준 6588 자바(Java) 골드바흐의 추측 (0) | 2021.10.13 |
수학: 백준 1978 자바(Java) 소수 찾기 (0) | 2021.10.13 |