본문 바로가기
Algorithm 문제풀기/Baekjoon

[JAVA] 덩치 ::: 구현, 브루트포스

by 내일이야 2024. 4. 26.

[ 문제 ]

https://www.acmicpc.net/problem/7568

 

 

 

[ 제출코드 ]

 

 

 

[ 풀이 ]

1. {위치, 몸무게, 키, 순위}를 담을 수 있는 Person 클래스를 만듭니다.

2. 몸무게를 기준으로 오름차순으로 정렬합니다.

3. 반복문으로 비교하면서, 현재 비교 대상인 사람보다 키와 몸무게 모두 큰 사람의 수만큼 순위에 더해줍니다.

4. 위치에 맞게 정답을 출력합니다.

 

예를 들어서, 입력이 다음과 같다고 가정해 봅시다.

6
55 181
54 181
56 181
55 179
56 182
54 190

 

위의 입력은 2번에 의해 다음과 같이 정렬할 수 있습니다.

6, 54 190

2, 54 181

4, 55 179

1, 55 181

5, 56 182

3, 56 181

 

여기서 주의할 점은 6번과 2번 중 키는 6번이 더 크지만 몸무게가 54로 같기 때문에 누가 덩치가 더 크다고 비교할 수 없습니다. 따라서 6번이 2번보다 덩치가 더 크다고 할 수 없습니다.

 

6번 보다 덩치가 큰 사람은 없기 때문에 6번의 순위는 1 입니다.

다음으로, 2번보다 덩치가 큰 사람은 한 명(5번) 밖에 없으므로 2번의 순위는 2 입니다.

이런 식으로 풀면 됩니다.

 

 

[ 이야기 ]

java8 이후부터 사용이 가능한 StringJoiner를 사용해봤습니다.

int 배열의 값들을 공백으로 구분해서 출력하기 위해 StringJoiner를 사용하게 되었습니다.

다시 말하자면, "[2, 1, 2, 4]"를 "2 1 2 4"로 출력하기 위함이었습니다.