24523 - 내 뒤에 나와 다른 수

2025. 2. 24. 22:04PS/백준

문제

https://www.acmicpc.net/problem/24523

느낀점

구현 기본 문제, 시간 초과를 해결하는 로직을 생각하는 것이 상당히 까다로웠다.

풀이

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int N;
    cin >> N;
    vector<int> arr(N);
    vector<int> answer(N, -1);
    for (int i = 0; i < N; i++)
    {
        cin >> arr[i];
    }
    if (N == 1)
    {
        cout << -1;
        return 0;
    }
    int left = 0, right = 0;
    while (true)
    {
        if (left >= N)
        {
            break;
        }
        int ref = arr[left];
        while (ref == arr[right])
        {
            right++;
            if (right >= N)
            {
                break;
            }
        }
        if (right >= N)
        {
            break;
        }

        for (int i = left; i < right; i++)
        {
            answer[i] = right + 1;
        }
        left = right;
    }

    for (int i = 0; i < N; i++)
    {
        cout << answer[i] << " ";
    }

    return 0;
}

'PS > 백준' 카테고리의 다른 글

6137 - 문자열 생성  (0) 2025.02.25
3151 - 합이 0  (0) 2025.02.25
1806 - 부분합  (0) 2025.02.23
1253 - 좋다  (0) 2025.02.22
18114 - 블랙 프라이데이  (0) 2025.02.19