문제
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 |
댓글