๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿ’ป Computer Science/- Data Structure, Algorithm

[์•Œ๊ณ ๋ฆฌ์ฆ˜-PS] ๋ฐฑ์ค€ 2775๋ฒˆ ๋ถ€๋…€ํšŒ์žฅ์ด ๋ ํ…Œ์•ผ ์ž๋ฐ” ๋ฌธ์ œํ’€์ด

by Wonit 2021. 7. 7.

๋ฌธ์ œ

ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ๋ฐฑ์ค€์˜ 2775๋ฒˆ ๋ถ€๋…€ํšŒ์žฅ์ด ๋ ํ…Œ์•ผ ์˜ ์ ‘๊ทผ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ ๊ธ€ ์ž…๋‹ˆ๋‹ค.
์ •๋‹ต ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹œ๋ ค๋ฉด solve url ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ๋จผ์ € ์ƒ๊ฐํ•ด๋ณด์ž.

๋ฌธ์ œ ์ ‘๊ทผ

์ด๋ฒˆ ๋ฌธ์ œ์˜ ์ปจ์…‰์€ Dynamic Programming ์ด๋‹ค.

ํ•ด๊ฒฐ๋ฒ•

0 ์ธต ๋ถ€ํ„ฐ 14์ธต 14ํ˜ธ ๊นŒ์ง€ ์กด์žฌํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์•„ํŒŒํŠธ๊ฐ€ ์กด์žฌํ•  ๊ฒƒ์ด๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๊ฐ ์ธต์˜ ์ธ์›์€ ์•„๋ž˜ ์ธต์˜ ํ˜„์žฌ ํ˜ธ์ˆ˜ ๊นŒ์ง€์˜ ์ธ์› ์ˆ˜์˜ ์ด ํ•ฉ ์ด๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฑ„์›Œ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š”๋ฐ, ๊ฐ ํ˜ธ์ˆ˜์˜ ์ธ์›์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” n-1 ์ธต์˜ ํ˜„์žฌ ํ˜ธ์ˆ˜ ๊นŒ์ง€ ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ์ธ์›์˜ ํ•ฉ์ด ๋œ๋‹ค.

 

์ด๊ฒŒ ๋ฐ”๋กœ ์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์ด๋‹ค.

 

์—ฌ๊ธฐ์„œ ์กฐ๊ธˆ ๋” ์ƒ๊ฐํ•ด๋ณด๋ฉด ๊ฐ™์€ ์ธต์˜ ๋ฐ”๋กœ ์ „ ํ˜ธ์ˆ˜์˜ ์ธ์› ์ˆ˜์™€ ๋‚ด ๋ฐ”๋กœ ์ธต์˜ ์ธ์› ์ˆ˜๋ฅผ ํ•ฉํ•˜๋ฉด ํ˜„์žฌ ์ธต๊ณผ ํ˜ธ์ˆ˜์˜ ์ธ์›์„ ์ฐพ์„ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

์ •๋‹ต ์ฝ”๋“œ

import java.io.*;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int[][] apartment = new int[15][15];

        apartment[0][0] = 1;

        for (int i = 0; i < apartment.length; i++) {
            apartment[0][i] = i + 1;
            apartment[i][0] = 1;
        }

        for (int i = 1; i < apartment.length; i++) {
            for (int j = 1; j < apartment[i].length; j++) {
                apartment[i][j] = apartment[i-1][j] + apartment[i][j-1];
            }
        }

        int n = Integer.parseInt(br.readLine());

        while (n-- > 0) {
            int floor = Integer.parseInt(br.readLine());
            int roomNumber = Integer.parseInt(br.readLine());

            bw.write(String.valueOf(apartment[floor][roomNumber-1]));
            bw.write("\n");
        }
        bw.flush();
        bw.close();
    }
}

๋ฌธ์ œ ํšŒ๊ณ 

ํšŒ๊ณ 

์ •๋‹ต ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹œ๋ ค๋ฉด solve url ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€