곽로그

[백준 25083, JAVA] 새싹 ( java escape 문자) 본문

알고리즘/백준

[백준 25083, JAVA] 새싹 ( java escape 문자)

일도이동 2023. 3. 19. 16:45
반응형

문제

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

 

개념

 사실 이 문제는, 문제에서 출력을 복사한 다음 note에디터에 붙여넣었다가( 필자는 visual studio code를 사용했다) 그걸 다시 복사한 다음 인텔리제이로 붙여넣으면 쉽게 할 수 있다. 

 

 하지만 이 문제를 정석으로 푼다라고 한다면, 자바의 escape문자를 알아야한다. 예를 들어 따옴표를 포함한 "Java"프로그래밍 을 출력하고 싶다고 하자. 이걸 그대로 System.out.println("")에 넣으면 에러가 난다 . 코드를 ""안에 넣기때문에, 어디에서 코드가 끝나는지 모르게 되기 때문이다. 다시말해 빨간색 따옴표를 코드의 끝으로 알았는데, 주황색 따옴표가 또 나왔기 때문에 어디에서 끝내야할지 자바는 모른다.

 그럼 여기서 주황색 따옴표는 출력용이다라는 것을 알려줘야 하는데, 여기서 사용하는 것이 \ , backslash이다.  위 코드에서 "Java"의 따옴표가 코드의 시작과 끝을 의미하는 것이 아닌, 출력을 위한 용도이다를 알려주기 위해 \를 붙인 \"Java\" 프로그래밍 이라고 해야한다. \를 이스케이프 문자 (escape character)라고한다. 

 

 이스케이프 문자에 대한 자세한 내용은 아래 사이트를 참고하면 좋을 것 같다

https://www.javatpoint.com/java-escape-characters

 

해결

 그럼 이 문제에서 출력할 때 문제가 되는 문자를 찾아보면 \ 와 " 가 있다. 이 문제들 앞에 \를 붙여줌으로써 \ " 를 출력할 수 있다. 

 

코드

 

public class Main {
    public static void main(String[] args) {
        System.out.println("         ,r'\"7");
        System.out.println("r`-_   ,'  ,/");
        System.out.println(" \\. \". L_r'");
        System.out.println("   `~\\/");
        System.out.println("      |");
        System.out.println("      |");
        System.out.println("\\n");
        System.out.println("---");

    }
}

 

반응형
Comments