๐ŸŒท๐ŸŒผ๋ชจ์—ฌ๋ด์š” ๊ฐœ๋ฐœ์˜์ˆฒ๐ŸŒท๐ŸŒผ

[๊ตฌ๋ฆ„ํ†ค์ฑŒ๋ฆฐ์ง€/JAVA] 18์ผ์ฐจ - ์ค‘์ฒฉ์  ๋ณธ๋ฌธ

๊ฐœ๋ฐœ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด JAVA

[๊ตฌ๋ฆ„ํ†ค์ฑŒ๋ฆฐ์ง€/JAVA] 18์ผ์ฐจ - ์ค‘์ฒฉ์ 

์š”์ผ์ด 2023. 9. 7. 15:01
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

https://level.goorm.io/exam/195700/%EC%A4%91%EC%B2%A9-%EC%A0%90/quiz/1

 

๊ตฌ๋ฆ„LEVEL

๋‚œ์ด๋„๋ณ„ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•จ์œผ๋กœ์จ SW ์—ญ๋Ÿ‰์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

level.goorm.io

 

๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ๊ณผ์ •

1. ๊ฐ€๋กœ๋ฅผ ๋จผ์ € ๊ธ‹๊ณ  ๊ฐ€๋กœ์˜ ๊ฐฏ์ˆ˜๋ฅผ ์ €์žฅํ•ด ๋†“๋Š” ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค.

2. ์„ธ๋กœ๋ฅผ ๊ทธ์„๋•Œ ๊ฐ€๋กœ๊ฐ€ ๊ทธ์–ด์ ธ ์žˆ๋Š” ๊ณณ์ด๋ž‘ ๊ฒน์น ๋•Œ ๊ฐ€๋กœ์˜ ๊ฐฏ์ˆ˜๋ฅผ answer์— ๋”ํ•ด์ค€๋‹ค.

 

 

import java.io.*;
import java.util.*;
class Main {
	public long solution(int N, int M, long[][] arr, ArrayList<ArrayList<Integer>> garo, ArrayList<ArrayList<Integer>> sero) {

                long answer = 0;

                boolean[][] box = new boolean[N][N];

                for(int i=0; i< garo.size(); i++){
                        int min_x = garo.get(i).get(0);
                        int min_y = garo.get(i).get(1);
                        int max_x = garo.get(i).get(2);
                        int max_y = garo.get(i).get(3);

                        for(int j=min_y; j<=max_y; j++){
                                box[min_x][j] = true;
                                arr[min_x][j]++;
                        }
                }

                for(int i=0; i<sero.size(); i++){
                        int min_x = sero.get(i).get(0);
                        int min_y = sero.get(i).get(1);
                        int max_x = sero.get(i).get(2);
                        int max_y = sero.get(i).get(3);

                        for(int j=min_x; j<=max_x; j++){
                                if(box[j][min_y]){
                                       answer += arr[j][min_y];
                                }
                        }
                }

                return answer;
        }

        public static void main(String[] args) {

                Main main = new Main();

                Scanner sc = new Scanner(System.in);

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

                long[][] arr = new long[N][N];
                ArrayList<ArrayList<Integer>> garo = new ArrayList<>();
                ArrayList<ArrayList<Integer>> sero = new ArrayList<>();

                for(int i=0; i<M; i++){
                        int a = sc.nextInt();
                        int b = sc.nextInt();
                        String d = sc.next();
                        ArrayList<Integer> tmp = new ArrayList<>();
                        if(d.equals("U")){
                                tmp.add(0);
                                tmp.add(b-1);
                                tmp.add(a-1);
                                tmp.add(b-1);
                                sero.add(tmp);
                        }else if(d.equals("D")){
                                tmp.add(a-1);
                                tmp.add(b-1);
                                tmp.add(N-1);
                                tmp.add(b-1);
                                sero.add(tmp);
                        }else if(d.equals("L")){
                                tmp.add(a-1);
                                tmp.add(0);
                                tmp.add(a-1);
                                tmp.add(b-1);
                                garo.add(tmp);
                        }else{
                                tmp.add(a-1);
                                tmp.add(b-1);
                                tmp.add(a-1);
                                tmp.add(N-1);
                                garo.add(tmp);
                        }
                }

                long answer = main.solution(N, M, arr, garo, sero);

                System.out.println(answer);
        }
}
Comments