인프런 커뮤니티 질문&답변

장재현님의 프로필 이미지
장재현

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

6주차 개념 #1. 이분탐색(Binary Search)

14002번 질문

작성

·

36

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

https://www.acmicpc.net/source/82877739

14002번 문제를 nlogn 시간에 풀기 위해서 큰돌쌤께서 알려주신 lower_bound로 풀어봤는데 틀렸다고 나옵니다. 이 방법은 trace는 할 순 없지만 문제에선 수열이 여러가지인 경우 아무거나 출력해도 상관없다고 해서 이 방법으로 하면 정상적으로 되야하는거 아닌가요...? 제가 이해를 잘 못한건지 어디 부분이 틀렸는지 잘 모르겠습니다

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 재현님 ㅎㅎ

문제를 보시면

둘째 줄에는 가장 긴 증가하는 부분 수열을 출력한다. 그러한 수열이 여러가지인 경우 아무거나 출력한다.

>> 해당 nlogn방법으로는 원본 배열이 수정되는 경우가 발생하기 때문에 이 방법을 쓰지말고 O(N^2) 방법을 써야 합니다.

 

예를 들어

3, 10, 2, 1, 20

의경우

이방법 -> 최종 lis의 경우 -> 1, 10, 20 이 됩니다.

그러나 원본배열로 lis를 만들면 -> 3, 10, 20 이 나와야 합니다.

 

감사합니다.

장재현님의 프로필 이미지
장재현

작성한 질문수

질문하기