백준 콘도 선정

KIMYEONGJUN·2024년 10월 25일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

첫째 줄에 콘도의 개수를 나타내는 자연수 N(1 ≤ N ≤ 10,000)이 주어진다.
다음 N개의 줄에는 각 콘도에 대한 정보를 나타내는 두 정수 D(1 ≤ D ≤ 10,000),
C(1 ≤ C ≤ 10,000)가 주어진다.
D는 그 콘도의 바닷가로부터의 거리를 나타내고,
C는 그 콘도의 숙박비를 나타낸다.
서로 다른 두 콘도의 D 값과 C값이 모두 같은 입력은 주어지지는 않는다.

첫째 줄에 후보가 될 수 있는 콘도의 수를 출력한다.

내가 이 문제를 보고 생각해본 부분

num 변수는 콘도의 개수를 저장한다.
answer 변수는 후보 콘도의 개수를 세기 위한 변수이다.
cond 배열은 각 콘도의 거리와 숙박비를 저장한다.
이차원 배열로 선언하여 첫 번째 인덱스는 거리,
두 번째 인덱스는 숙박비를 나타낸다.
for 루프를 통해 각 콘도의 정보를 입력받아 cond 배열에 저장한다.

코드로 구현

package baekjoon.baekjoon_23;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// 백준 2246번 문제
public class Main817 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int num = Integer.parseInt(br.readLine());
        int answer = 0;

        int[][] cond = new int[num][2];

        for(int i = 0; i < num; i++) {
            String[] input = br.readLine().split(" ");
            cond[i][0] = Integer.parseInt(input[0]);
            cond[i][1] = Integer.parseInt(input[1]);
        }

        for(int i = 0; i < num; i++) {
            if(checkQ(cond, i))
                answer++;
        }

        System.out.println(answer);
        br.close();
    }

    static boolean checkQ(int[][] arrs, int index) {
        for(int i = 0; i < arrs.length; i++) {
            if(i == index)
                continue;
            if(arrs[index][0] >= arrs[i][0] && arrs[index][1] >= arrs[i][1])
                return false;
        }
        return true;
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글