브루트 포스 문제에 있는 '덩치'라는 문제의 풀이입니다
일단 문제부터 보겠습니다
https://www.acmicpc.net/problem/7568
7568번: 덩치
우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩
www.acmicpc.net
그렇게 어려운 문제는 아닙니다
그래서 저는 배열을 사용해서 풀었습니다
이 문제에서 생각해봐야 하는 부분은
A와 B라는 사람이 있을 때
(A의 몸무게) > (B의 몸무게) 이지만
(A의 키) < (B의 키)일때는
A와 B가 같은 순위로 취급한다는 것입니다
하지만 이 말을 바꿔서 말하면
몸무게와 키 둘 다 자신보다 커야지만
자신보다 순위가 높다는 것입니다
그래서 저는 자신보다 둘 다 높은 사람의 수를 세서 순위에 반영했습니다
import java.util.Scanner;
public class Main {
public static void main(String[] args){
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
int numOfPeople = scan.nextInt();
int[][] info = new int[numOfPeople][2];
for(int i = 0 ; i < numOfPeople ; i++) {
info[i][0] = scan.nextInt();
info[i][1] = scan.nextInt();
}
for(int i = 0 ; i < numOfPeople ; i++) {
int rank = 1;
for(int j = 0 ; j < numOfPeople; j++) {
// 모두 자신보다 큰 사람의 수를 세는 조건
if(info[i][0] < info[j][0] && info[i][1] < info[j][1]) {
rank++;
}
}
//만약 자신보다 키와 몸무게가 큰 사람이 없다면 1위로 나오게 됨
System.out.printf("%d ",rank);
}
System.out.println();
}
}
브루트 포스 문제는 말 그대로 일단 해보자는 알고리즘입니다
그냥 일단 무식하게 하나하나 해보자는 알고리즘입니다
그래서 다른 알고리즘에 비해 쉽지만 그만큼 시간도 많이 걸리는 알고리즘입니다
'Algorithm' 카테고리의 다른 글
[Java] 백준 1018번 문제 '체스판 다시 칠하기' 풀이 (0) | 2021.05.21 |
---|---|
[Java] 백준 2231번 문제 '분해합' 풀이 (0) | 2021.05.21 |
[Java] 백준 1032번 문제 명령 프롬프트 (0) | 2021.05.14 |
[Java]백준 1193번 문제 '분수 찾기' (0) | 2021.05.14 |
[Java] 백준 2869번 문제 '달팽이는 올라가고 싶다' (0) | 2021.05.14 |