매일 Algorithm

신재원·2023년 7월 6일
0

Algorithm

목록 보기
159/243

백준 11653번

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class problem502 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int number = in.nextInt();

        List<Integer> list = new ArrayList<>();
        for (int i = 2; i <= number; i++) {

            // number의 i 모듈 한 나머지가 계속 0이면 누적
            while (number % i == 0) {
                list.add(i);

                number /= i;
            }
        }

        for (int result : list) {
            System.out.println(result);
        }
    }
}

백준 2960번

import java.util.Scanner;

public class problem503 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int number = in.nextInt();
        int k = in.nextInt();
        int count = 0;
        boolean[] flag = new boolean[number + 1];

        for (int i = 2; i <= number; i++) {
            for (int j = i; j <= number; j+= i) {

                // 이미 지워진 수 인지 확인
                if(!flag[j]){
                    count++;
                    flag[j] = true;
                }

                // k번째 지워진 수 출력
                if(count == k){
                    System.out.println(j);
                    
                    // break를 하게되면 안쪽 for문만 탈출하게 됨으로 
                    // 시스템을 완전히 탈출해야됩니다.
                    System.exit(0);
                }
            }
        }
    }
}

백준 2217번

import java.util.Arrays;
import java.util.Scanner;

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

        int size = in.nextInt();
        int[] arr = new int[size];

        for (int i = 0; i < size; i++) {
            arr[i] = in.nextInt();
        }

        Arrays.sort(arr);

        // 5 10 15 20
        /*
1번째 로프(5)는 4개를 사용할 수 있으므로 들 수 있는 중량은 5 * 4 = 20입니다.
2번째 로프(10)는 3개를 사용할 수 있으므로 들 수 있는 중량은 10 * 3 = 30입니다.
3번째 로프(15)는 2개를 사용할 수 있으므로 들 수 있는 중량은 15 * 2 = 30입니다.
4번째 로프(20)는 1개만 사용할 수 있으므로 들 수 있는 중량은 20입니다.
        */
        int result = 0;
        for (int i = 0; i < size; i++) {
            int temp = arr[i] * (size - i);
            result = Math.max(temp, result);
        }
        System.out.println(result);
    }
}

0개의 댓글