https://www.acmicpc.net/problem/2942
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int r = sc.nextInt();
int g = sc.nextInt();
int n = r < g ? r : g;
ArrayList<Integer> list = new ArrayList<>();
for(int i=1; i<=n; i++) {
if(r % i == 0 && g % i == 0) {
list.add(i);
}
}
for(int i=0; i<list.size(); i++) {
System.out.printf("%d %d %d", list.get(i), r/list.get(i), g/list.get(i));
System.out.println();
}
}
}
예제를 보며 생각해보니 r, g 두 수의 공통된 약수를 구하면 사과를 남기지 않고 똑같이 나누어줄 수 있는 선수의 수 N이 되는거였다. 그리고 나누는 사과의 수는 전체 사과를 N으로 나누면 됐다
'코딩테스트-알고리즘 > 백준 BOJ' 카테고리의 다른 글
[백준 BOJ/Silver V] 11650번 : 좌표 정렬하기 (1) | 2024.01.15 |
---|---|
[백준 BOJ/Silver V] 1181번 : 단어 정렬 (2) | 2024.01.14 |
[백준 BOJ/Bronze I] 1157번 : 단어 공부 (0) | 2024.01.14 |
[백준 BOJ/Silver IV] 11652번 : 카드 (4) | 2024.01.13 |
[백준 BOJ/Silver I] 금민수의 개수 (2) | 2024.01.09 |