공부하기/백준

[Java] 백준 풀기 5357 - Dedupe

XEV 2023. 4. 29. 23:41

자바 백준 5357번

브론즈 4

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

 

5357번: Dedupe

Redundancy in this world is pointless. Let’s get rid of all redundancy. For example AAABB is redundant. Why not just use AB? Given a string, remove all consecutive letters that are the same.

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 구현, 문자열

 

 

 

 

 

문제 풀기

테스트 케이스 만큼 반복을 하면서 각 문자열을 입력 받는다.

입력받은 문자열을 split() 함수를 통해 String array 분할하여 저장한다.

분할 저장된 array 에서 첫번째인 index 값과 두번째인 index + 1 값을 equals() 함수로 같은지 비교를 한다.

만약 같으면 다음 index 비교로 넘어간다. (exclamation mark 는 가독성이 안좋아 잘 사용 안함.)

그렇지 않은 else 문에 진입하게 되면 뒷쪽 index + 1 값을 String result 에 더해 나간다.

testCase loop 가 끝나기전 result 를 출력한다.

 

 

 

 

 

코드 보기

import java.util.*;

public class Main {
    public static void main(String args[]) {
        
        Scanner sc = new Scanner(System.in);
        
        int testCase = sc.nextInt();
        
        for (int t = 0; t < testCase; t++) {
            String[] strArr = sc.next().split("");
            // System.out.println(Arrays.toString(strArr));  // TEST PRINT
            
            String result = strArr[0];
            for (int s = 0; s < strArr.length - 1; s++) {
                if (strArr[s].equals(strArr[s + 1])) {
                    continue;
                }
                else {
                    result += strArr[s + 1];
                }
            }
            
            System.out.println(result);
        }

    }
}