본문 바로가기

Java-Study

Java Study : 8주차 - 백준 문제풀이

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

 

2775번: 부녀회장이 될테야

첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다

www.acmicpc.net

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        int[][] apt = new int[15][15];

        for(int i = 0; i < 15; i++) {
            apt[i][1] = 1;
            apt[0][i] = i;
        }


        for(int i = 1; i < 15; i ++) {
            for(int j = 2; j < 15; j++) {
                apt[i][j] = apt[i][j - 1] + apt[i - 1][j];
            }
        }

        int a = in.nextInt();

        for(int i = 0; i < a; i++) {
            int k = in.nextInt();
            int n = in.nextInt();
            System.out.println(apt[k][n]);
        }
    }
}

 

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

 

1193번: 분수찾기

첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.

www.acmicpc.net

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();

        int block_cnt = 1;  //대각선의 블록 갯수
        int block_sum = 0;  //해당 대각선 직전 대각선까지의 블록 누적 합

        while(true) {
            if(a <= block_cnt + block_sum) {
                if(block_cnt % 2 == 1 ) {   //대각선의 갯수가 홀수일 경우
                    //분자가 큰 수부터 시작 -> 대각선의 갯수가 3면 3, 2, 1 순서
                    //분자는 대각선의 블록 갯수 - (a번째 - 직전 대각선까지의 블럭 갯수의 합 - 1)
                    //분모는 a번째 - 직전 대각선까지의 블록 갯수의 합
                    int molecule = block_cnt - (a - block_sum - 1);
                    int denominator = a - block_sum;
                    System.out.println(molecule + "/" + denominator);
                    break;
                }
                else {  //대각선의 갯수가 짝수일 경우
                    //홀수일 때와 반대로
                    int denominator = block_cnt - (a - block_sum - 1);
                    int molecule = a - block_sum;
                    System.out.println(molecule + "/" + denominator);
                    break;
                }
            }
            else {
                block_sum += block_cnt;
                block_cnt++;
            }
        }
    }
}

 

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

 

10250번: ACM 호텔

프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수

www.acmicpc.net

import java.util.Scanner;

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

        for(int i  = 0; i< T; i++) {
            int H = sc.nextInt();
            int W = sc.nextInt();
            int N = sc.nextInt();
            int x = (N/H) + 1;
            int y = N%H;
            if(N%H==0) {
                x = N/H;
                y = H;
            }
            System.out.println(y*100+x);
        }
    }
}