
내가 생각했을때 문제에서 원하는부분
첫째 줄에 콘도의 개수를 나타내는 자연수 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;
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.