카테고리 없음

알고리즘 스터디 5주차

hyunmin43240 2025. 4. 3. 10:10

11286

import java.util.PriorityQueue;
import java.util.Scanner;
import java.util.Comparator;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        PriorityQueue<Integer> pq = new PriorityQueue<>(new Comparator<Integer>() {

            @Override
            public int compare(Integer a, Integer b) {
                int absA = Math.abs(a);
                int absB = Math.abs(b);

                if (absA == absB) {
                    return a - b;  // 실제 값 비교
                }
                return absA - absB;  // 절댓값 비교
            }
        });

        int N = scanner.nextInt();

        for (int i = 0; i<N; i++) {
            int z = scanner.nextInt();
            if (z != 0) {
                pq.add(z);
            } else {
                if (pq.isEmpty()) {
                    System.out.println(0);
                } else {
                    System.out.println(pq.poll());
                }
            }
        }
            
    }
}

1966

1929

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int M = scanner.nextInt();
        int N = scanner.nextInt();

        for (int num = M ; num <= N ; num++) {
            if (isPrime(num)) {
                System.out.println(num);
                }
            }
    }

    public static boolean isPrime(int n) {
        if (n < 2) return false;

        for (int i =2; i <= Math.sqrt(n); i++) {
            if (n % i ==0) return false;
        }

        return true;
    }
}

1850

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        long num1 = scanner.nextLong();
        long num2 = scanner.nextLong();

        long gcd = getGCD(Math.max(num1, num2), Math.min(num1, num2));

        StringBuilder sb = new StringBuilder();
        for (int i = 1; i <= gcd; i++) sb.append("1");

        System.out.println(sb.toString());
    }

    public static long getGCD(long a, long b) {
        while (b > 0) {
            long tmp = a;
            a = b;
            b = tmp % b;
        }
        return a;
    }
}