πŸ’  Cpp/[BOJ] λ‹¨κ³„λ³„λ‘œ 풀어보기

[BOJ][C++] λ°±μ€€ 10810번: 곡 λ„£κΈ° (Bronze III)

선달 2024. 11. 29. 15:49
λ°˜μ‘ν˜•

문제

λ„ν˜„μ΄λŠ” λ°”κ΅¬λ‹ˆλ₯Ό 총 N개 가지고 있고, κ°κ°μ˜ λ°”κ΅¬λ‹ˆμ—λŠ” 1λ²ˆλΆ€ν„° Nλ²ˆκΉŒμ§€ λ²ˆν˜Έκ°€ 맀겨져 μžˆλ‹€. 또, 1λ²ˆλΆ€ν„° Nλ²ˆκΉŒμ§€ λ²ˆν˜Έκ°€ μ ν˜€μžˆλŠ” 곡을 맀우 많이 가지고 μžˆλ‹€. κ°€μž₯ 처음 λ°”κ΅¬λ‹ˆμ—λŠ” 곡이 λ“€μ–΄μžˆμ§€ μ•ŠμœΌλ©°, λ°”κ΅¬λ‹ˆμ—λŠ” 곡을 1개만 넣을 수 μžˆλ‹€.
λ„ν˜„μ΄λŠ” μ•žμœΌλ‘œ M번 곡을 λ„£μœΌλ €κ³  ν•œλ‹€. λ„ν˜„μ΄λŠ” ν•œ 번 곡을 넣을 λ•Œ, 곡을 넣을 λ°”κ΅¬λ‹ˆ λ²”μœ„λ₯Ό μ •ν•˜κ³ , μ •ν•œ λ°”κ΅¬λ‹ˆμ— λͺ¨λ‘ 같은 λ²ˆν˜Έκ°€ μ ν˜€μžˆλŠ” 곡을 λ„£λŠ”λ‹€. λ§Œμ•½, λ°”κ΅¬λ‹ˆμ— 곡이 이미 μžˆλŠ” κ²½μš°μ—λŠ” λ“€μ–΄μžˆλŠ” 곡을 λΉΌκ³ , μƒˆλ‘œ 곡을 λ„£λŠ”λ‹€. 곡을 넣을 λ°”κ΅¬λ‹ˆλŠ” μ—°μ†λ˜μ–΄ μžˆμ–΄μ•Ό ν•œλ‹€.
곡을 μ–΄λ–»κ²Œ 넣을지가 μ£Όμ–΄μ‘Œμ„ λ•Œ, M번 곡을 넣은 이후에 각 λ°”κ΅¬λ‹ˆμ— μ–΄λ–€ 곡이 λ“€μ–΄ μžˆλŠ”지 κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μž…λ ₯

첫째 쀄에 N (1 ≤ N ≤ 100)κ³Ό M (1 ≤ M ≤ 100)이 주어진닀.
λ‘˜μ§Έ 쀄뢀터 M개의 쀄에 κ±Έμ³μ„œ 곡을 λ„£λŠ” 방법이 주어진닀. 각 방법은 μ„Έ μ •μˆ˜ i j k둜 이루어져 있으며, i번 λ°”κ΅¬λ‹ˆλΆ€ν„° j번 λ°”κ΅¬λ‹ˆκΉŒμ§€μ— k번 λ²ˆν˜Έκ°€ μ ν˜€μ Έ μžˆλŠ” 곡을 λ„£λŠ”λ‹€λŠ” λœ»μ΄λ‹€. 예λ₯Ό λ“€μ–΄, 2 5 6은 2번 λ°”κ΅¬λ‹ˆλΆ€ν„° 5번 λ°”κ΅¬λ‹ˆκΉŒμ§€μ— 6번 곡을 λ„£λŠ”λ‹€λŠ” λœ»μ΄λ‹€. (1 ≤ i ≤ j ≤ N, 1 ≤ k ≤ N)
λ„ν˜„μ΄λŠ” μž…λ ₯으둜 주어진 μˆœμ„œλŒ€λ‘œ 곡을 λ„£λŠ”λ‹€.

좜λ ₯

1번 λ°”κ΅¬λ‹ˆλΆ€ν„° N번 λ°”κ΅¬λ‹ˆμ— λ“€μ–΄μžˆλŠ” 곡의 번호λ₯Ό 곡백으둜 ꡬ뢄해 좜λ ₯ν•œλ‹€. 곡이 λ“€μ–΄μžˆμ§€ μ•Šμ€ λ°”κ΅¬λ‹ˆλŠ” 0을 좜λ ₯ν•œλ‹€.

 

풀이

// 풀이 : https://whkakrkr.tistory.com

#include <iostream>
#include <vector>

using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cout.tie(NULL);
    cin.tie(NULL);
    
    int n,m, i,j,k;
    cin >> n >> m;
    vector<int>basket(n+1, 0);
    while(m--) {
        cin >> i >> j >> k;
        for(int t=i; t<=j; t++) {
            basket[t] = k;
        }
    }

    for(int t=1; t<=n; t++) {
        cout << basket[t] << " ";
    }
    
    return 0;
}
λ°˜μ‘ν˜•