1946번 - 신입 사원
먼저 첫번째 성적에 대해서 정렬을 한 뒤에, 순차적으로 값을 하나씩 선택해 나가면서 최댓값을 갱신하도록 했을때는 시간초과가 떳었습니다(즉 v[0] 을 고랐을때의 값, v[1]을 골랐을때의 값, v[2]를 골랐을때의 값... 나아가면서 최댓값을 갱신).
그래서 가장작은 v[0]을 포함시키는 경우에 무조건 최댓값을 구해낼 것 같아서 그렇게 해보았더니 시간초과도 안뜨고 정답처리를 받았습니다.
그런데, 만약 아래와 같은 경우에 (1,2)를 고른다면, (1,2)와 (4,1) 을 골라서 답이 2가나오지만, 최댓값은 (2,4),(3,3),(4,1) 을 고른 3이 있습니다.
(2,4)와 (3,3)은 (1,2)에게 지기 때문에 뽑히지 않습니다. 뽑히는 사람들 사이에서만 겨루는 것이 아니라 지원한 사람 전체에 대해서 하는 거기 때문입니다.
아.. 감사합니다!
아 저도 이런 반례를 생각했는데 전체 지원자군요...ㄷ
어려우면서도 쉽고... 이해력이 좋아야 하네요.
댓글을 작성하려면 로그인해야 합니다.
show981111 4년 전
먼저 첫번째 성적에 대해서 정렬을 한 뒤에, 순차적으로 값을 하나씩 선택해 나가면서 최댓값을 갱신하도록 했을때는 시간초과가 떳었습니다(즉 v[0] 을 고랐을때의 값, v[1]을 골랐을때의 값, v[2]를 골랐을때의 값... 나아가면서 최댓값을 갱신).
그래서 가장작은 v[0]을 포함시키는 경우에 무조건 최댓값을 구해낼 것 같아서 그렇게 해보았더니 시간초과도 안뜨고 정답처리를 받았습니다.
그런데, 만약 아래와 같은 경우에 (1,2)를 고른다면, (1,2)와 (4,1) 을 골라서 답이 2가나오지만, 최댓값은 (2,4),(3,3),(4,1) 을 고른 3이 있습니다.
14
1 2
2 4
3 3
4 1
잘못된것 아닌가요?
아래는 정답처리를 받은 코드입니다.