꾸물꾸물 졔의 개발공부
SWEA 1289 - 원재의 메모리 복구하기 ( JAVA ) 본문
[ 알고리즘 ]
초기상태가 모두 0인 상태이기 때문에, 00000.... 일 것이다.
그것을 고려하여, 현재 값을 0부터 시작하여서 메모리를 앞에서 부터 스캔하고, 현재값과 상반되는 값이 나오면 0 -> 1 / 1->0 으로 바꾸어 주면서 count 를 올려주었다.
즉, 단순 for 문 문제로 해결가능한 문제이다.
( 하지만, 초기값이 000... 이 아니고, 가변적인 메모리 값을 가지게 되면, 이방법은 통하지 않겠지 ㅎ.. )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import java.io.*;
public class Solution {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
int n= Integer.parseInt(br.readLine());
StringBuilder sb= new StringBuilder();
for(int testcase= 1; testcase <=n; testcase ++) {
String s = br.readLine();
char idx='0';
int count=0;
for(int i=0; i<s.length(); i++) {
if(s.charAt(i)!=idx) {
idx=s.charAt(i);
count++;
}
}
sb.append("#").append(testcase).append(" ").append(count).append("\n");
}
System.out.println(sb);
}
}
|
cs |
BufferedReader 와 StringBuilder 를 사용하였고
각 testcase 를 반복하며 , 초기 문자를 '0'으로 지정해두었다.
입력받은 메모리값의 길이만큼 돌면서, 초기문자와 다른값이 나오면 카운트를 하면서 초기값을 갱신
'알고리즘 > SWEA' 카테고리의 다른 글
SWEA 1859 - 백만 장자 프로젝트 ( JAVA ) (0) | 2023.02.07 |
---|---|
SWEA 4615 - 재미있는 오셀로 게임 ( JAVA ) (0) | 2023.01.27 |
SWEA 5653 - 줄기세포배양 ( JAVA ) (0) | 2022.09.09 |
SWEA 1218 - 괄호짝짓기 (JAVA) (0) | 2022.02.09 |
SWEA 1228 - 암호문1 ( JAVA ) (0) | 2022.02.08 |