msksj869   5년 전

정말 간단하게 입력받은 값을 오름차순 정리 후 

제일 작은 값부터 오름차순으로 조건에 상응하면 답을 바로 출력하는 코드입니다.

어차피 제일 작은 값이랑 짝인 애가 절대값이 제일 클 수밖에 없어서 바로 출력하는 식으로 했구요. 

예)합이 10,  레고 4개 , 길이 9,2,8,1이면 오름차순 정리로 1.2.8.9가 되고 적은 수부터 하니까 바로 1.9 짝이 나와서 2.8은 신경쓰지 않아도 되구요.

레고의 개수가 0,1(2개가 구멍을 채워야함) 또는 짝이 없을 때는 danger을 출력하는 예외처리도 했는데 틀렸다고 해서 제가 

잊은게 어떤건지 반례부탁드립니다. 

0_o   5년 전

첫번째로, 테스트 케이스는 여러개 입니다.

두번째는, 이 문제는 이분탐색 문제입니다. 이러한 유형의 문제는 시간이 중요합니다.

코드를 보면 시간복잡도가 O(N2)인 버블정렬을 사용하고 있는데, 

시간복잡도가 O(N log N)인 퀵정렬이나 합병정렬을 사용해야 AC를 받을 수 있을 것입니다.

비교 또한 일일히 하나씩 맞춰가며 중첩반복문으로 비교하는 것이 아니라 탐색 알고리즘으로

비교할 대상을 최소화시켜야합니다.


아마도 테스트 케이스를 여러개를 받는 부분을 구현한다고 하면, TLE가 나올것입니다.

탐색 알고리즘을 공부하셔서 꼭 문제 푸시기를 바랍니다. 감사합니다.


댓글을 작성하려면 로그인해야 합니다.