매일 Algorithm

신재원·2023년 4월 26일
1

Algorithm

목록 보기
107/243

백준 21734번 (Bronze 2)

import java.util.Scanner;

public class problem348 {
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        String inputString = in.next();
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < inputString.length(); i++) {
            char temp = inputString.charAt(i);

            int charAt = temp;
            int count = 0;

            // 문자의 자릿수 값을 구한다.
            while(charAt != 0){
                count += charAt % 10;
                charAt /= 10;
            }

            // 자릿수의 합 만큼 문자를 출력해준다.
            for(int j = 0; j < count; j++){
                System.out.print(temp);
            }
            System.out.println();
        }
    }
}

백준 23037번 (Bronze 2)

import java.util.Scanner;

public class problem349 {
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        String inputString = in.next();
        int[] temp = new int[inputString.length()];
        int result = 0;
        for (int i = 0; i < inputString.length(); i++) {
            temp[i] = inputString.charAt(i) - '0';
        }

        for (int i = 0; i < temp.length; i++) {
       		// 값을 5의 제곱해주면서 result에 누적해준다.
            result += Math.pow(temp[i], 5); 
        }

        System.out.println(result);

    }
}

백준 1312번 (Silver 5)

import java.util.Scanner;

public class problem351 {
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        int a = in.nextInt(); // 분자
        int b = in.nextInt(); // 분모

        int n = in.nextInt(); // 소수점 아래 N번째

        int temp = a % b;

        // 소수점의 N번째를 구하기위해 나머지구하는 n번 반복한다
        for(int i = 1 ; i < n; i++){
            temp = (temp * 10) % b; // n번째 나머지 갱신
        }

        temp = (temp * 10) / b;
        System.out.println(temp);
    }
}

백준 2303번 (Silver 5)

import java.util.Scanner;

public class problem352 {
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        int size = in.nextInt();
        // 일의 자리수의 max값을 담기위한 변수,
        // -1인 이유는 가장 큰 한자리수가 0으로 나올수도있다.
        int max = -1;
        int index = 0;

        // 1번 사람부터 시작함으로 int i = 1;
        for (int i = 1; i <= size; i++) {
            int[] arr = new int[5];
            for (int j = 0; j < arr.length; j++) {
                arr[j] = in.nextInt();
            }

            for (int j = 0; j < 3; j++) {
                for (int k = j + 1; k < 4; k++) {
                    for (int p = k + 1; p < 5; p++) {
                        int sum = arr[j] + arr[k] + arr[p];
                        // 무조건 십의자리 숫자임으로 나머지를 구해주면된다.
                        int temp = sum % 10;

                        // >= 로 하는 이유는 만약 일의자리 숫자와 max값이 같으면 
                        // 사람 번호 가 높은 사람을 반환
                        if (temp >= max) {
                            max = temp;
                            index = i;
                        }
                    }
                }
            }
        }
        System.out.println(index);

    }
}

백준 2422번 (Silver 5)

import java.util.Scanner;

public class problem353 {
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        int type = in.nextInt();
        int count = in.nextInt();

        // 크기를 + 1 한 이유는 아이스크림이 1부터 type까지 번호 임으로
        boolean[][] flag = new boolean[type + 1][type + 1];

        for (int i = 0; i < count; i++) {
            int n = in.nextInt();
            int m = in.nextInt();

            // 안좋은 조합이 1,2 순서나 2,1 순서가 똑같음으로
            flag[n][m] = true;
            flag[m][n] = true;
        }

        int result = 0;

        // 서로다른 3가지의 아이스크림을 선택한다.
        // 순회하며 flag에 조합이 있는지 확인
        for (int i = 1; i <= type; i++) {
            for (int j = i + 1; j <= type; j++) {
                for (int k = j + 1; k <= type; k++) {
                    if (!flag[i][j] && !flag[i][k] && !flag[j][k]) {
                        result++;
                    }
                }
            }
        }
        System.out.println(result);
    }
}

0개의 댓글