Level3 풍선 터뜨리기


Level3 풍선 터뜨리기

https://programmers.co.kr/learn/courses/30/lessons/68646 필요한 로직 : 구현 [논리] a의 길이는 1 이상 1,000,000 이하이고, a의 모든 수는 서로 다르다. 최후로 남길 원소보다 작은 풍선을 터뜨릴 기회는 딱 한번만 주어지고, 그 외로는 모두 해당 원소보다 큰 풍선들만 터뜨릴 수 있다. a의 길이가 백만인만큼 최대한 O(N)~O(NlogN) 근접하게 풀 것이라 접근해야 한다. 그래서 res 배열을 하나 두고, 모두 1의 원소값을 담아두었다. 왼쪽부터 오른쪽 끝까지 a 리스트를 순회하고, 최소값을 갱신한다. 이때 a[i]가 최소값 minv1보다 작다면 res[i]를 1씩 뺀다. 자신보다 작은 수의 풍선을 터뜨렸으므로 주어진 한번의 기회를 썼다는 의미다..........



원문링크 : Level3 풍선 터뜨리기