코린이의 소소한 공부노트

[LeetCode/Easy] 1678. Goal Parser Interpretation 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 1678. Goal Parser Interpretation

무지맘 2023. 1. 2. 13:05

1. Input

1) 문자열 command

 

2. Output

1) Goal Parser를 이용해서 command를 해석한 결과 문자열

// Goal Parser의 해석 규칙

- “G”“G”이다.

- “()”“o”이다.

- “(al)”“al”이다.

 

3. Constraint

1) 1 <= command.length <= 100

2) command“G”, “()”, “(al)”로 이루어져 있다.

 

4. Example

Input: command = "G()()()()(al)" -> Output: "Gooooal“

Input: command = "(al)G(al)()()G" -> Output: "alGalooG"

 

5. Code

1) 첫 코드(2022/06/03)

String[] input = command.split("");
String result = "";
for(int i=0 ; i<input.length ; i++){
    if(input[i].equals("G")) result += "G";
    else if(input[i].equals("(")){
        if(input[i+1].equals(")")){
            result += "o"; i++;
        } else{
            result += "al"; i+=2;
        }
    }
} // for i
return result;

2) 한 줄로 줄이면 어떨까?(2023/01/02)

return command.replaceAll("\\(al\\)","al").replaceAll("\\(\\)","o");

  - 메모리 사용량 차이는 없었고, 시간만 약간 단축됐다.