[Baekjoon][Java] 준표의 조약돌

HyeBin, Park·2022년 6월 5일
0

Baekjoon

목록 보기
9/11
post-thumbnail

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

📒 문제

📒 예제

🎈 코드

import java.util.Scanner;

public class P_15831 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int totalStones = sc.nextInt();
		int maxBlackStone = sc.nextInt();
		int minWhiteStone = sc.nextInt();
		String line = sc.next();
		char[] stones = line.toCharArray();

		int start = 0, end = 0;
		int white = 0, black = 0;
		int curLen = 0, maxLen = 0;

		while (end < totalStones) {
			if (black > maxBlackStone) {
				if (stones[start] == 'W')
					white--;
				else
					black--;

				curLen--;
				start++;
			} else {
				if (stones[end] == 'W')
					white++;
				else
					black++;

				curLen++;
				end++;
			}

			if (black <= maxBlackStone && white >= minWhiteStone) {
				maxLen = Math.max(curLen, maxLen);
			}
		}
		System.out.println(maxLen);
	}
}

🐢 정리하기

  • 바로 투포인터 문제라는 생각을 하지 못했다 😅
  • 처음에 while 조건을 start가 end 보다 작다면 ~ 이라고 지정을 해서 헤맸었다.
  • 투포인터 문제 좀 재밌는데 ??

0개의 댓글