알고리즘 공부/C++

백준 2495번 연속구간 C++

마달랭 2024. 7. 21. 13:52
반응형

리뷰

간단한 조건문으로 풀이가 가능한 문제

 

문제 풀이

  1. 문자열 세개를 각각 a, b, c 변수에 입력 받고, 최대값을 나타낼 정수 0과 현재 길이를 나타낼 1을 각각 초기화 해준다.
  2. a, b, c 문자열의 현재 문자와 다음 인덱스의 문자가 같을 경우 현재 길이를 1 늘려준다.
  3. 최대값과 현재 길이를 비교하여 더 큰값을 최대값으로 최신화 해준다.
  4. for문이 완료된 후 a, b, c의 최대 연속된 값을 줄바꿈을 통하여 출력해 준다.

 

참고 사항

없음

 

 

정답 코드

#include <iostream>

using namespace std;

int main() {
	string a, b, c;
	cin >> a >> b >> c;
	int a_max = 0, b_max = 0, c_max = 0;
	int a_len = 1, b_len = 1, c_len = 1;
	for (int i = 0; i < 7; i++) {
		if (a[i] == a[i + 1]) a_len++;
		else a_len = 1;
		if (b[i] == b[i + 1]) b_len++;
		else b_len = 1;
		if (c[i] == c[i + 1]) c_len++;
		else c_len = 1;
		a_max = max(a_max, a_len);
		b_max = max(b_max, b_len);
		c_max = max(c_max, c_len);
	}
	cout << a_max << "\n" << b_max << "\n" << c_max;
}

 

 

728x90
반응형