해당 문제를 이해하기엔 내용이 잘 이해가 되지 않아 접근 방법을 보고 푼 문제이다. 일단 접근 방법에 대해선 그림으로 설명하고 풀이 과정에 대해 설명해보고자 한다. 예시 입력을 그림으로 표현해보았다. 우선 우린 저 배열에서 4가 나올 나올 때 까지 오름차순으로 저 주황색 막대기에 넣어줘야 한다. 4가 나올 때 까지, Push만을 반복하다가. 4가 나오면 PoP을 해준 뒤 다음 배열에 있는 것을 바라본다. 곧바로 POP을 해주면된다. 이 때, 6을 바라보아야 하는데, 이 때 3과 4는 사용했고 5,6만 들어갈 수 있다. 대충 문제의 접근 방법은 저 그림들로 설명이 가능하다 그럼 이것을 코드로 생각을 해보아야 하는데. 가장 먼저, 어떤 변수들을 사용할 지를 생각해보는 것이다. Input N, Array, 막..
해당 문제는 2진 탐색 알고리즘으로 풀 수 있다. 입력 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 후 K줄에 걸쳐 이미 가지고 있는 각 랜선의 길이가 센티미터 단위의 정수로 입력된다. 랜선의 길이는 2^31-1보다 작거나 같은 자연수이다. 입력에선 랜선의 개수 K, 필요한 랜선의 개수 N, K줄에 걸쳐 이미 가지고 있는 각 랜선의 길이를 받아야 한다. 이 때, 중요한 것은 2의31승 - 1 즉 21억 int의 최대값을 의미한다. 이는 K가 10,000이 입력되고 각 줄 마다 랜선에서 int의 최대값 ( 약 21억 ) 을 모두 더..