728x90
문제 링크
https://www.acmicpc.net/problem/7568
문제 설명
몸무게와 키가 주어지는 N명 집단에서 각 사람마다 등치의 등수를 출력하면 된다.
단, 몸무게와 키 둘 다 커야지만 등치가 큰 것이며 등수가 높은 것이다(1에 가까울수록 높다)
해설
해당 문제는 알고리즘 분류가 브루트포스이며, 최대 50명 이기 때문에 이중 for문을 사용해도 최대 경우의 수가 2500번 이기 때문에 완전탐색을 사용해도 좋을 것 같다.
완전탐색을 한명 한 명 진행하면 되고 이중 for문을 사용해서 등수를 알고 싶은 사람을 다른 사람과 비교해서 등치가 작으면 등수를 +1 씩 해주고 아니라면 그냥 지나가면 된다.
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[][] arr = new int[N][2];
for (int i = 0; i < N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
arr[i][0] = Integer.parseInt(st.nextToken());
arr[i][1] = Integer.parseInt(st.nextToken());
}
// 등수를 알고 싶은 사람 한명 뽑기
for (int i = 0; i < N; i++) {
int rank = 1;
// 다른 사람들과 비교하기
for (int j = 0; j < N; j++) {
// i와 j가 같으면 같은 사람이기 때문에 넘어가기
if (i == j) {
continue;
}
// 등수를 알고 싶은 사람이 비교하는 사람보다
// 키, 몸무게 둘 다 작으면 rank를 +1 해주기
if (arr[i][0] < arr[j][0] && arr[i][1] < arr[j][1]) {
rank++;
}
}
System.out.print(rank + " ");
}
br.close();
}
}
728x90
'알고리즘 > 브루트포스' 카테고리의 다른 글
[자바]백준 1476번 날짜 계산[브루트포스][엄탱] (5) | 2023.03.11 |
---|---|
[자바]백준 1018번 체스판 다시 칠하기[브루트포스][엄탱] (2) | 2023.03.11 |
[자바]백준 2231번 분해합[브루트포스][엄탱] (0) | 2023.03.10 |
[자바]백준 2798번 블랙잭 [브루트포스][엄탱] (0) | 2023.03.10 |
브루트 포스 알고리즘[엄탱] (1) | 2023.03.10 |