백준 문제풀이

9613. GCD 합 (자바, Java)

뮤츠 2022. 11. 22. 22:07

무식하게 브루트-포스로 이중for문 돌렸다.

재귀와 반복문 중에는, 반복문이 가능한 경우에는 반복문쪽으로 돌리고 있다. 똑같이 구현하면 재귀보단 반복문이 시간상 우위에 있다보니 습관을 들이는 중.

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws Exception {
		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++) {
			StringTokenizer st = new StringTokenizer(br.readLine()," ");
			int n = Integer.parseInt(st.nextToken());
			int[] k = new int[n]; // 각 값을 넣을 배열 생성
			long ans = 0; // 출력하게 될 각 줄의 정답값
			for (int j=0; j<n; j++) {
				k[j] = Integer.parseInt(st.nextToken());
			}
			for (int j=0; j<n-1; j++) {
				for (int l=j+1; l<n; l++) {
					ans+=gcd(k[j], k[l]);
				}
			}
			sb.append(ans + "\n");
		}
		System.out.println(sb);
	}
	
	public static int gcd (int minor, int major) {
		int a=minor;
		int b=major;
		while (b%a!=0) {
			int temp = a;
			a = b%a;
			b = temp;			
		}
		
		return a;
	}

}

'백준 문제풀이' 카테고리의 다른 글

1373. 2진수 8진수 (자바, Java)  (0) 2022.11.22
17087.숨바꼭질 6 (자바, Java)  (0) 2022.11.22
11656. 접미사 배열 (자바, Java)  (0) 2022.11.20
10824. 네 수 (Java, 자바)  (0) 2022.11.20
11655. ROT13 (자바, Java)  (0) 2022.11.20