본문 바로가기
Algorithm/C++

[백준 26122] 가장 긴 막대 자석

by imagineer_jinny 2023. 8. 27.

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

 

26122번: 가장 긴 막대 자석

막대 자석 문자열은 문자 N과 S로만 구성되면서 다음과 같은 조건을 만족하는 문자열이다: 막대 자석 문자열에 등장하는 N의 개수와 S의 개수는 동일하며, 문자열의 앞쪽 절반을 구성하는 문자는

www.acmicpc.net

 

 
 

문제

 

막대 자석 문자열은 문자 N과 S로만 구성되면서 다음과 같은 조건을 만족하는 문자열이다: 막대 자석 문자열에 등장하는 N의 개수와 S의 개수는 동일하며, 문자열의 앞쪽 절반을 구성하는 문자는 모두 N이거나 모두 S이다. 예를 들어, NS, NNSS, SSSNNN 등은 막대 자석 문자열이지만, SNS, NNNSS, NSNS 등은 막대 자석 문자열이 아니다.

윤이는 문자 N과 S로 구성된 문자열을 가지고 있다. 윤이는 이 문자열의 부분 문자열 중에서 가장 긴 막대 자석 문자열을 찾고자 한다. 부분 문자열이란 문자열의 연속된 일부를 의미한다. 윤이가 주어진 문자열의 부분 문자열 중에서 찾을 수 있는 가장 긴 막대 자석 문자열의 길이는 얼마인지 구하시오.

 

 

예제 입력 1 

8
NSSSNNSN

예제 출력 1 

4

3번째 문자부터 6번째 문자까지의 부분 문자열인 SSNN은 막대 자석 문자열이다.

 

예제 입력 2 

5
NNNNN

예제 출력 2 

0

막대 자석 문자열을 찾을 수 없으므로 0을 출력한다.

 

사고 과정 / 틀림

길이 카운팅하는 cnt 설정

n이든 s든 나올때 카운팅 하고 다른 게 나오기 시작할때 카운팅 한 갯수와 맞으면 cnt 저장

스택이나 큐를 이용하면 될 것 같은데 잘은 생각이 안남

'Algorithm > C++' 카테고리의 다른 글

[백준 2443] 별 찍기 -6  (0) 2023.09.01
[백준 2440] 별 찍기 - 3  (0) 2023.09.01
[백준 2566] 최댓값  (0) 2023.08.27
[백준 10996] 별 찍기 -21  (0) 2023.08.27
[백준 2446] 별 찍기 - 9  (0) 2023.08.27

댓글