본문 바로가기
Problem Solving/SWEA

[SWEA] 1289. 원재의 메모리 복구하기

by 테리는당근을좋아해 2020. 2. 9.

문제

0,1로 이루어진 숫자가 입력되었을 때, 같은 길이의 0으로 이루어진 숫자를 입력된 숫자와 같이 바꾸는 문제.

 

단, 한 숫자를 0 -> 1, 1 -> 0으로 바꿀 경우 해당 값부터 맨 끝까지 모두 동일한 수로 바꾼다.

 

입력된 데이터와 같은 수로 바꾸기 위해 최소 몇 번의 수를 바꿔야하는지 구하라.

 

풀이방법

입력된 수의 인접한 두 값이 다른 횟수를 찾는다.

 

단, 첫번째 입력 값이 1부터 시작될 경우 횟수를 한 번 더 추가해준다.

 

소스코드

package samsung;

import java.util.*;

public class s_1289 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int test = sc.nextInt();
		for(int t = 1; t <= test; t++) {
			String s = sc.next();
			int[] a = new int[s.length()];
			for(int i = 0; i < s.length(); i++) {
				a[i] = s.charAt(i) - '0';
			}
			int cnt = a[0];
			
			for(int i = 1; i < a.length; i++) {
				if(a[i] != a[i-1])
					cnt++;
			}
			
			System.out.println("#" + t + " " + cnt);
		}
	}
}

'Problem Solving > SWEA' 카테고리의 다른 글

[SWEA] 1230. 암호문3  (0) 2020.02.09
[SWEA] 1945. 간단한 소인수분해  (0) 2020.02.09
[SWEA] 1285. 아름이의 돌 던지기  (0) 2020.02.09
[SWEA] 1234. 비밀번호  (0) 2020.02.09
[SWEA] 1230. 암호문3  (0) 2020.02.09

댓글