πŸ§‘β€πŸ’» λ°±μ€€ 11053

πŸ§‘β€πŸ’» λ°±μ€€ 11053

였늘 ν’€ λ¬Έμ œλŠ” 11053번, κ°€μž₯ κΈ΄ μ¦κ°€ν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄μ΄λ‹€.

μ¦κ°€ν•˜λŠ” μˆ˜μ—΄μ΄λΌλŠ” 말에 μž…λ ₯된 μˆ˜λŠ” 이전에 μž…λ ₯된 μˆ˜λ³΄λ‹€ 큰 μˆ˜κ°€ λ“€μ–΄μ™€μ•Όν•œλ‹€λŠ” 쑰건을 μƒκ°ν–ˆλ‹€. λ„ˆλ¬΄ κ°„λ‹¨ν•œ μ‘°κ±΄μ΄μ—ˆμ§€λ§Œ, μ˜€λžœλ§Œμ— μ•Œκ³ λ¦¬μ¦˜ 곡뢀λ₯Ό μ‹œμž‘ν•œ 만큼, 일단 직접 μ½”λ“œλ₯Ό μ§œλ³΄μ•˜λ‹€.

#include<iostream>

using namespace std;

int main(void){
    int lengthOfSequence;
    int prevValue = 0;
    int record = 0;

    cin>>lengthOfSequence;
    
    for(int i = 0; i < lengthOfSequence; i++){
        int temp;
        cin>>temp;
        if(temp > prevValue){
            prevValue = temp;
            record++;
        }
    }

    cout<<record;

    return 0;
}

μ•„μ£Ό μ˜€λžœλ§Œμ— C++을 μ΄μš©ν•΄μ„œ μ½”λ“œλ₯Ό μž‘μ„±ν–ˆκ³  μ •μƒμ μœΌλ‘œ μž‘λ™ν•œλ‹€. κ·ΈλŸ¬λ‚˜ 정닡은 μ•„λ‹ˆμ—ˆλŠ”λ°,, 이 λ¬Έμ œλŠ” DP μΉ΄ν…Œκ³ λ¦¬μ˜ λ¬Έμ œμ΄λ‹€. λ”°λΌμ„œ μ΄λ ‡κ²Œ κ°„λ‹¨ν•˜κ²Œ ν‘ΈλŠ”κ²Œ μ•„λ‹κ²ƒμ΄μ—ˆλ‹€.

μ΄λ²ˆμ—” λ™μΌν•œ 수만 μ•ˆλ‚˜μ˜¨λ‹€λ©΄(μ€‘λ³΅λ§Œ ν”Όν•œλ‹€λ©΄) μ¦κ°€ν•˜λŠ” μˆ˜μ—΄μ„ 이룰 수 μžˆμŒμ„ μƒκ°ν–ˆλ‹€. μ΅œλŒ€λ‘œ λ‚˜μ˜¬μˆ˜μžˆλŠ” 수의 크기가 1000으둜 μ œν•œλ˜λ―€λ‘œ 1000크기의 bool 배열을 λ§Œλ“€μ–΄ 이미 λ“±μž₯ν•œ μˆ˜μΈμ§€λ₯Ό ν™•μΈν•˜λŠ” λ°©μ‹μœΌλ‘œ μ½”λ“œλ₯Ό μ§œλ΄€λ‹€.

#include<iostream>

using namespace std;

int main(void){
    int lengthOfSequence;
    int record = 0;
    bool sequenceMem[1000];
    
    for(int i = 0; i < 1000; i++){
        sequenceMem[i] = false;
    }

    cin>>lengthOfSequence;
    
    for(int i = 0; i < lengthOfSequence; i++){
        int temp;
        cin>>temp;
        
        if(sequenceMem[temp] == false){
            sequenceMem[temp] = true;
            record++;
        }
    }

    cout<<record;

    return 0;
}

κ²°κ³ΌλŠ” ν‹€λ Έλ‹€. 문제λ₯Ό 잘λͺ» μ΄ν•΄ν•œκ²ƒμ΄, μœ„μ˜ μ½”λ“œκ°€ 정닡이 되렀면 μ£Όμ–΄μ§„ μˆ˜μ—΄μ˜ μˆœμ„œλ₯Ό 바꿔도 λœλ‹€λŠ” 쑰건이 μžˆμ–΄μ•Όν•œλ‹€. λ¬Έμ œμ—μ„œλŠ” μ£Όμ–΄μ§„ μˆ˜μ—΄μ˜ μˆœμ„œλ₯Ό μž¬μ‘°ν•© ν•  μˆ˜λŠ” μ—†λŠ” 것이닀.

일단 λ¬Έμ œμ— λΆ€λ”›νžˆλŠ”κ²ƒ 보닀 쒀더 생각을 해보고 문제λ₯Ό ν‘ΈλŠ”κ²ƒμ΄ 쒋을 것 κ°™μ•„ 쒅이λ₯Ό 가져와 생각을 ν•΄ λ³΄μ•˜λ‹€. n번째 수 mκ³Ό, n보닀 μž‘μ€ k번째 수 jκ°€ μžˆλ‹€κ³  ν•  λ•Œ j < m을 λ§Œμ‘±ν•˜λŠ” κ°€μž₯ 큰 kλ₯Ό 찾으면 m이 k + 1둜 λ‚˜νƒ€λ‚΄μ–΄μ§ˆ 수 μžˆμ—ˆλ‹€. λ”°λΌμ„œ 벑터λ₯Ό 3κ°€μ§€ λ§Œλ“€κΈ°λ‘œ ν–ˆλ‹€. μž…λ ₯받을 μˆ˜μ—΄ inputSequence, ν•΄λ‹Ή 번째 κΉŒμ§€ κ°€λŠ₯ν•œ κ°€μž₯ κΈ΄ μˆ˜μ—΄μ˜ 길이λ₯Ό λ‚˜νƒ€λ‚Ό sequenceLength, 그리고 j < m을 λ§Œμ‘±ν•˜λŠ” μˆ˜μ—΄μ˜ 길이 쀑 κ°€μž₯ κΈ΄ 것을 μ°ΎκΈ° μœ„ν•œ μž„μ‹œ 벑터 tempλ₯Ό λ§Œλ“€μ–΄μ„œ ν•΄κ²°ν•΄λ³΄κ³ μž ν–ˆλ‹€.

#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

int main(void){
    int lengthOfSequence;
    int record = 0;
    vector<int> inputSequence;
    vector<int> sequenceLength;
    vector<int> temp;
    int result = 0;
    
    sequenceLength.push_back(1);
    cin>>lengthOfSequence;
    
    for(int i = 0; i < lengthOfSequence; i++){
        int temp;
        cin>>temp;
        inputSequence.push_back(temp);
    }

    for(int i = 1; i < lengthOfSequence; i++){
        for(int j = 0; j < i; j++){
            if(inputSequence.at(i) > inputSequence.at(j)){
                temp.push_back(sequenceLength.at(j));
            }
            else{
                temp.push_back(0);
            }
        }
        sequenceLength.push_back(*max_element(temp.begin(), temp.end()) + 1);
        temp.clear();
    }
    
    for(int i = 0; i < lengthOfSequence; i++){
        if(result < sequenceLength.at(i))
            result = sequenceLength.at(i);
    }
    
    cout<<result<<endl;
    
    return 0;
}

일단 μž…λ ₯을 λ°›κ³ , μˆ˜μ—΄μ˜ 첫번째 μš”μ†ŒλŠ” 길이가 1μ΄λ―€λ‘œ 1둜 μ§€μ •ν•΄μ€€λ‹€. 이후 μˆ˜μ—΄μ„ μˆœνšŒν•˜λ©΄μ„œ 크기비ꡐλ₯Ό 톡해 κ°€λŠ₯ν•œ 후보듀을 temp에 λ„£μ–΄μ£Όκ³ , tempμ—μ„œλŠ” 후보듀 쀑 κ°€μž₯ κΈ΄ μˆ˜μ—΄μ˜ 길이 + 1ν•œκ°’μ„ ν˜„μž¬ κ°€λŠ₯ν•œ κ°€μž₯ κΈ΄ μˆ˜μ—΄μ˜ 길이둜 μ„€μ •ν•΄μ€€λ‹€. μ΄λ ‡κ²Œ μ°Ύμ•„μ§„ tempμ—μ„œ κ°€μž₯ κΈ΄ μˆ˜μ—΄μ„ μ°Ύμ•„ 좜λ ₯ν•΄μ€ŒμœΌλ‘œμ¨ λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆλ‹€.

λ‹€μŒ κΈ€ πŸ§‘β€πŸ’» λ°±μ€€ 11047 λ³΄λŸ¬κ°€κΈ°.

Share: Twitter Facebook
Seunghun Yang's Picture

About Seunghun Yang

Seunghun is undergraduate student at Computer Science Engineering in CNU(Chungnam National University).

Daejeon, South Korea

Comments