그리디 알고리즘 씨름선수 조건을 만들어야하지 않을까요?
281
작성한 질문수 1
예를들어 테스트 케이스에서
183 65
180 70
180 66
이렇게 있다면 180 66은 선발이 돼야 합니다.
왜냐면 183 65보다 키 작지만 몸무게는 높고
180 70보다 몸무게는 낮지만 키는 같으니까
존재하면 A지원자는 탈락하고, 그렇지 않으면 선발된다.
위 조건을 생각해보면 3명 모두 선발돼야 합니다.
하지만, 작성해주신 코드에는 maxW가 180 70에서 70으로 바뀌고, 그 후 180 66을 카운팅하지 않기 때문에 문제가 생깁니다.
그래서 같은 키를 가진 선수는 없다고 조건이 있어야 하거나, 밑 처럼 코드가 바뀌어야 한다고 생각합니다.
~~~java
@Override
public int compareTo(Body o) {
if (o.h == this.h) return o.w - this.w;
else return o.h - this.h;
~~~
정렬 방식을 위 처럼 같은 키에서 무게를 내림차순 하고,
밑 처럼 같은 키일 때 최대 무게와 서로 키가 다를 때 최대 무게를 다르게 설정해야 한다고 생각합니다.
~~~java
Player prev = new Player(0, 0);
Player present = new Player(0, 0);
for (int i = 0; i < N; i++) {
if (present.k != arr[i].k) {
prev.w = Math.max(prev.w, present.w);
present.k = arr[i].k;
present.w = arr[i].w;
}
if (prev.w < arr[i].w) {
cnt++;
}
}
~~~
답변 1
안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.
1
86
3
갑자기 채점 사이트가 바뀌었어요
0
57
1
문제 리스트 페이지
0
44
1
채점 사이트 관련 질문드립니다
0
42
1
봉우리 문제 질문입니다
0
103
2
씨름 선수 문제에서 각 선수의 몸무게나 키가 같을 수도 있다면?
0
76
0
이 코드랑 영상 코드중에 뭐가 더 좋은 코드인가요?
0
83
0
가중치 방향 그래프에서 가중치가 0인 간선을 표현하는 방법
0
77
1
좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ
0
96
2
6-7 강의에서
0
56
1
6-6. 장난꾸러기 질문 있습니다.
0
55
1
강의 수강후 코딩테스트
0
127
1
answer 변수 사용 여부
0
51
1
2중 for문
1
99
2
2-11. 임시반장정하기 (Runtime Error)
0
69
1
혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?
0
76
1
이런 풀이는 어떨까요
0
52
1
자바 스트림 방식의 효율성 질문 드립니다.
0
64
1
알고리즘 자료 구조들..
0
69
1
StringBuilder vs BufferdWriter
0
53
1
원더랜드(프림)
0
58
1
이런 코드는 어떤가요?
0
68
1
bfs 풀이
0
66
1
병합정렬
0
58
1





