https://www.acmicpc.net/problem/1654
요즘 프로젝트로 biginteger를 다루는 자료형을 만들었었는데
이것의 부작용인지..... 문제를 처음 봤을때 조건들의 숫자가 그렇게 크지 않다고 생각하고 아무렇게나 접근했었는데
위와 같이 큰 수부터 1씩 감소 시켜주면서 잘라서 개수를 비교하여 처음 N 과 같아질때의 수를 출력하는 식으로 했더니?
채점중 2퍼인가 에서 시간초과...5퍼인가?.....
꽤 채점이 되다가 시간초과가 떳으면 이 코드에서 시간을 줄여보고자 생각을 했을 수도 있겠지만
터무늬 없어서 방법을 바꿔야 한다는 것을 깨닫고 문제 조건을 다시 파악했다....
무엇이 좋을까 하다가 떠오른건 "이분탐색"
코드의 디테일 까지는 잘 생각이 안나서 짜면서 신경 써야되는 부분이 있지만
역시 개념자체는 배워놓으면 잘 까먹지 않고 생각 나는 것 같아서 혼자 뿌듯....
이분 탐색으로 짠 코드는 다음과 같다.
간단해서 따로 설명할 것은 없어보이고
길이는 1이상 이기때문에 처음 bottom값을 0으로 설정하면 채점중 런타임 에러가 나타난다. <주의>
'학부생 공부 > 연습문제(백준)' 카테고리의 다른 글
백준 10995 (0) | 2019.12.30 |
---|---|
백준 15947 (0) | 2019.12.30 |
백준 10818 (0) | 2019.12.25 |
백준 10757 큰 수 A+B (0) | 2019.11.24 |
백준 10989 수정렬하기3 (0) | 2019.11.16 |