본문 바로가기

TIL(Today I Learned)

99클럽 코테 스터디 3일차 TIL + [백준] 31458 : !!초콜릿 중독 주의!!

반응형

 

오늘의 학습 키워드

  • 문자열

 

문제 탐색하기

문제

 

문제 풀이 설계하기

0! = 1, 1! = 1, !0 = 1, !1 = 0

문제에서 주어진 조건을 통해 모두 문자열이라고 생각해보면 규칙에 따라서 왼쪽의 값을 오른쪽으로 변경해가며 최종적으로 문자열의 길이가 1이 될때까지 반복해주면 되는 문제입니다.

 

조건은 팩토리얼 형태를 먼저 계산한다고 되어있으니 0!, 1! 를 먼저 1로 변경해주게끔 로직을 작성하면 될 것 같습니다.

 

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int T = Integer.parseInt(br.readLine());
        String[] arr = new String[T];
        for(int i=0; i<T; i++){

            String str = br.readLine();
            while(str.length() > 1){

                if(str.contains("0!")){
                    str = str.replace("0!", "1");
                }else if(str.contains("1!")){
                    str = str.replace("1!", "1");
                }else if(str.contains("!0")){
                    str = str.replace("!0", "1");
                }else if(str.contains("!1")){
                    str = str.replace("!1", "0");
                }
            }

            arr[i] = str;
        }

        for(String str : arr){
            System.out.println(str);
        }
    }
}

 

오늘의 회고

String 자료형에서 주어지는 contains() 메소드와 replace() 메소드를 활용해서 문제를 풀 수 있었습니다.
반응형