반응형
문제: 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++을 할 줄 알아야 살아남을 수 있다는 현실...
반응형
'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 |