swexpert 1289. 원재의 메모리 복구하기 (java)

728x90
반응형

flag변수를 둬서 현재 또 바꿔야할 부분이 있는지 검사했습니다. 

 

1. 모든 값이 000 이렇게 0인 상태에서 1로 바꾸는 것이 시작이니 flag를 1로 해서 1이 있는 곳을 검사합니다

2. 해당 위치의 문자를 1로 바꿨다고 가정하고 그 위치의 다음 인덱스부터 이번에는 0이 있는 곳이 있는지 검사합니다.

해당 위치부터 끝까지 숫자가 모두 1로 바뀌었으니 이제 flag변수는 0으로 바꿔줍니다. 

3. 이제 더이상 바꿀 문자가 없을 때까지 진행하고 indexOf가 -1이 나오면 없다는 뜻이니 끝내줍니다

 

import java.util.Scanner;

public class Solution {
		static int t;
		
		public static void main(String[] args) {
			Scanner sc=new Scanner(System.in);
			t=sc.nextInt();
			for (int tc = 1; tc <=t; tc++) {
				String s=sc.next();
				int flag=1;
				int startIdx=0;
				int cnt=0;
				while(s.indexOf(String.valueOf(flag),startIdx)!=-1) {
					startIdx=s.indexOf(String.valueOf(flag),startIdx)+1;
					flag=1-flag;
					cnt+=1;
				}
				System.out.printf("#%d %d\n",tc,cnt);
			}
		}
}
728x90
반응형
TAGS.

Comments