티스토리 뷰

728x90

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

 

1439번: 뒤집기

다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모

www.acmicpc.net

 

0과 1밖에 없다는 점을 이용하여 정규표현식으로 구현한다면 쉽게 풀 수 있는 문제입니다.

정규표현식을 사용할 땐 자바에서는

" [(^ : 해당 문자는 제외) 교체하고 싶은 문자 ] (* 0개 이상)  (+ : 1개 이상)" 이정도를 알고 계시면 간단한 정규표현식 문제는 쉽게 풀 수 있습니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.util.*;
 
public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        sc.close();
 
        int cnt_o = 0, cnt_z = 0;
        String pattern = "[1]+";
 
        while (s.contains("1")) {
            s = s.replaceFirst(pattern, " ");
            cnt_o++;
        }
        
        StringTokenizer st = new StringTokenizer(s, " ");
        while (st.hasMoreTokens()) {
            st.nextToken();
            cnt_z += 1;
        }
 
        int ans = Math.min(cnt_o, cnt_z);
 
        System.out.println(ans);
 
    }
}
cs

 

'코딩 > 자바 백준' 카테고리의 다른 글

백준 10845 큐 (JAVA)  (0) 2021.09.03
백준 16435 스네이크버드  (0) 2021.09.02
백준 1913 달팽이 (JAVA)  (0) 2021.09.01
백준 2947 나무 조각 (JAVA)  (0) 2021.09.01
백준 16395 파스칼의 삼각형(JAVA)  (0) 2021.08.31
댓글