[Python] 백준/BOJ 24523번: 내 뒤에 나와 다른 수 (Silver 2)
·
Algorithm/백준 (BOJ)
💻 Problem문제 보러 가기 길이가 N인 수열 A_1 A_2 ... A_N이 주어진다. 1 ≤ i ≤ N인 정수 i마다 i ≤ N이고 A_i ≠ A_j인 정수 j중 최솟값을 출력하라. 만약 이러한 j가 없다면 -1을 출력하라. 💡 Approach처음엔 이중반복문으로 푸는 방법밖에 생각 안 났다... ㅜㅜ근데 시간 계산해보니 이중반복문으로 풀면 시간 터져서 반복문을 중첩하지 않는 방식을 생각해 보았다... 연속된 A[i]의 값이 같으면 정답인 j도 항상 같다.A[i]의 정답인 j는 시작하는 A[i]에서 자신과 같은 값인 칸들을 건너뛰고 처음으로 다른 값이 나오는 칸의 index이다. 결론은 투 포인터로 풀었다.왼쪽을 가리키는 포인터 하나(l)와 오른쪽을 가리키는 포인터 하나(r)를 뒀다. 두 포..