알고리즘 모음(C++)

백준 2495 - 연속구간(C++) 본문

백준

백준 2495 - 연속구간(C++)

공대생의 잡다한 사전 2023. 5. 16. 22:12

문제 링크입니다. https://www.acmicpc.net/problem/2495

 

2495번: 연속구간

여덟 자리의 양의 정수가 주어질 때, 그 안에서 연속하여 같은 숫자가 나오는 것이 없으면 1을 출력하고, 있으면 같은 숫자가 연속해서 나오는 구간 중 가장 긴 것의 길이를 출력하는 프로그램을

www.acmicpc.net

8자리 정수가 주어질 때, 같은 양수가 가장 길게 나온 길이를 구하는 문제입니다.

 

문자를 하나 저장하는 변수를 통해, 새로운 수가 나오게 되면 해당 수로 바꿔준 뒤, 길이를 1로 바꿔줍니다.

이전 수와 같은 수가 나온다면 길이를 하나 증가해줍니다.

 

 

자세한 것은 코드를 참고해주세요.

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <cstring>
#include <cmath>

using namespace std;

int main(){
    cin.tie(0);
    cout.tie(0);
    for(int i = 1; i <= 3; i++){
        string x;
        char num = ' ';
        int cnt = 0, maxi = 0;
        cin >> x;
        for(int j = 0; j < x.size(); j++){
            if(num != x[j]){
                if(maxi < cnt) maxi = cnt;
                cnt = 1;
                num = x[j];
            }
            else{
                cnt++;
            }
        }
        if(maxi < cnt) maxi = cnt;
        cout << maxi << "\n";
    }    
    
    return 0;
}

 

 

질문 및 조언은 댓글을 남겨주세요