Java/코딩 테스트
수학: 백준 9613 자바(Java) GCD 합
bgeun2
2021. 10. 13. 16:00
반응형
문제: https://www.acmicpc.net/problem/9613
9613번: GCD 합
첫째 줄에 테스트 케이스의 개수 t (1 ≤ t ≤ 100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있다. 각 테스트 케이스는 수의 개수 n (1 < n ≤ 100)가 주어지고, 다음에는 n개의 수가 주어진
www.acmicpc.net
풀이:
유클리드 호제법을 사용해 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++을 할 줄 알아야 살아남을 수 있다는 현실...
반응형