코딩테스트-알고리즘/백준 BOJ

[백준 BOJ/Silver II] 퍼거슨과 사과

닉네임생각즁 2024. 1. 8. 23:36

 

https://www.acmicpc.net/problem/2942

 

2942번: 퍼거슨과 사과

맨체스터 유나이티드의 감독 퍼거슨은 빨간 사과를 R개, 초록 사과를 G개 가지고 있다. 훈련장에 있는 선수들 중 몇 명에게 나누어 주려고 한다. 단, 선수들이 서로 같은 개수의 사과를 받지 못하

www.acmicpc.net

 

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으로 나누면 됐다