
✅ 문제
고양이 출력하기
이스케이프 코드(Escape Sequance)를 이해하기 위한 문제
📥 입력
없음.
📥 출력
고양이를 출력한다.
💡 풀이
자바에서는 \ 백슬래시나 " 큰따옴표, ' 작은따옴표는 단독으로 써서 출력할 수 없다.
이들을 출력하기 위해서는 이들 앞에 \ 백슬래시를 하나 더 사용해야 한다.
이렇게 앞에 붙여주는 백슬래시를 Escape Sequance 라고 한다.
이스케이프 시퀀스는 백슬래시(\) + 문자의 조합으로 쓰인다.
<이스케이프 시퀀스(Escape Sequance)>
이스케이프 문자
|
의미
|
\ \
|
\ 출력(back slash)
폴더 경로 구분시 잘 사용됨
|
\n
|
개행(new Line)
다음 줄로 이동됨.
|
\r
|
캐리지 리턴(carriage return)
해당 줄의 처음(맨 앞)으로 이동됨.
|
\t
|
수평 탭(tab)
탭 키 만큼 수평으로 띄움.
|
\b
|
백스페이스(backspace)
바로 앞의 문자를 하나 지움.
|
\f
|
폼피드(Formfeed)
프린터에서 강제적으로 다음페이지로 넘길 때 사용
|
\'
|
' 출력(작은따옴표)
|
\"
|
" 출력(큰따옴표)
|
✅ 1. System 클래스 표준 입출력을 이용한 풀이
고양이 그림을 드래그해서 그대로 복사한다.
그리고 System.out.println("") 안에붙여 넣으면 아래와 같이 나온다.
System.out.println( "\\ /\\\n" +
" ) ( ')\n" +
"( / )\n" +
" \\(__)|");
여기서 가독성을 높이기 위해 +앞에 있는 \n을 지우고
각 줄마다 System.out.println("") 을 이용해주면 아래처럼 보기 좋은 코드가 된다.
public class Main {
public static void main(String[] args) {
System.out.println("\\ /\\");
System.out.println(" ) ( ')");
System.out.println("( / )");
System.out.println(" \\(__)|");
}
}
✅ 2. StringBuilder 객체를 이용한 풀이
개행 메소드가 없기 때문에 각 줄 끝에 \n를 써서 개행해줘야 한다.
public class Main {
public static void main(String[] args){
StringBuilder sb = new StringBuilder();
// StringBuffer sb = StringBuffer(); 위 코드 대신 이 코드를 써도 무방
sb.append("\\ /\\\n");
sb.append(" ) ( ')\n");
sb.append("( / )\n");
sb.append(" \\(__)|\n");
System.out.println(sb);
}
}
✅ 3. BufferedWriter 객체를 이용한 풀이
개행 메소드가 없기 때문에 각 write마다 \n를 써서 개행해줘야 한다.
또는 각 줄마다 bw.newLine(); 메서드를 써서 개행을 해 줘도 된다.
모든 과정이 끝난 후에는 bw.flush()로 스트림에 있는 데이터를 비워주고, bw.close()로 스트림을 닫는다.
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write("\\ /\\");
bw.newLine(); // 줄 구분자
bw.write(" ) ( ')");
bw.newLine();
bw.write("( / )");
bw.newLine();
bw.write(" \\(__)|");
bw.flush();
bw.close();
}
}
'Algorithm > BaekJoon' 카테고리의 다른 글
[백준] 1330번 두 수 비교하기 - 자바 / java (2) | 2024.04.02 |
---|---|
[백준] 10172번 개 - 자바/java (0) | 2024.04.02 |
[백준] 11719번 그대로 출력하기2 - 자바/java (0) | 2024.03.28 |
[백준] 11718번 그대로 출력하기 - 파이썬/python3 (0) | 2024.03.28 |
[백준] 10869번 사칙연산 - 파이썬/python3 (1) | 2024.03.27 |

✅ 문제
고양이 출력하기
이스케이프 코드(Escape Sequance)를 이해하기 위한 문제
📥 입력
없음.
📥 출력
고양이를 출력한다.
💡 풀이
자바에서는 \ 백슬래시나 " 큰따옴표, ' 작은따옴표는 단독으로 써서 출력할 수 없다.
이들을 출력하기 위해서는 이들 앞에 \ 백슬래시를 하나 더 사용해야 한다.
이렇게 앞에 붙여주는 백슬래시를 Escape Sequance 라고 한다.
이스케이프 시퀀스는 백슬래시(\) + 문자의 조합으로 쓰인다.
<이스케이프 시퀀스(Escape Sequance)>
이스케이프 문자
|
의미
|
\ \
|
\ 출력(back slash)
폴더 경로 구분시 잘 사용됨
|
\n
|
개행(new Line)
다음 줄로 이동됨.
|
\r
|
캐리지 리턴(carriage return)
해당 줄의 처음(맨 앞)으로 이동됨.
|
\t
|
수평 탭(tab)
탭 키 만큼 수평으로 띄움.
|
\b
|
백스페이스(backspace)
바로 앞의 문자를 하나 지움.
|
\f
|
폼피드(Formfeed)
프린터에서 강제적으로 다음페이지로 넘길 때 사용
|
\'
|
' 출력(작은따옴표)
|
\"
|
" 출력(큰따옴표)
|
✅ 1. System 클래스 표준 입출력을 이용한 풀이
고양이 그림을 드래그해서 그대로 복사한다.
그리고 System.out.println("") 안에붙여 넣으면 아래와 같이 나온다.
System.out.println( "\\ /\\\n" +
" ) ( ')\n" +
"( / )\n" +
" \\(__)|");
여기서 가독성을 높이기 위해 +앞에 있는 \n을 지우고
각 줄마다 System.out.println("") 을 이용해주면 아래처럼 보기 좋은 코드가 된다.
public class Main {
public static void main(String[] args) {
System.out.println("\\ /\\");
System.out.println(" ) ( ')");
System.out.println("( / )");
System.out.println(" \\(__)|");
}
}
✅ 2. StringBuilder 객체를 이용한 풀이
개행 메소드가 없기 때문에 각 줄 끝에 \n를 써서 개행해줘야 한다.
public class Main { public static void main(String[] args){ StringBuilder sb = new StringBuilder(); // StringBuffer sb = StringBuffer(); 위 코드 대신 이 코드를 써도 무방 sb.append("\\ /\\\n"); sb.append(" ) ( ')\n"); sb.append("( / )\n"); sb.append(" \\(__)|\n"); System.out.println(sb); } }
✅ 3. BufferedWriter 객체를 이용한 풀이
개행 메소드가 없기 때문에 각 write마다 \n를 써서 개행해줘야 한다.
또는 각 줄마다 bw.newLine(); 메서드를 써서 개행을 해 줘도 된다.
모든 과정이 끝난 후에는 bw.flush()로 스트림에 있는 데이터를 비워주고, bw.close()로 스트림을 닫는다.
import java.io.BufferedWriter; import java.io.OutputStreamWriter; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); bw.write("\\ /\\"); bw.newLine(); // 줄 구분자 bw.write(" ) ( ')"); bw.newLine(); bw.write("( / )"); bw.newLine(); bw.write(" \\(__)|"); bw.flush(); bw.close(); } }
'Algorithm > BaekJoon' 카테고리의 다른 글
[백준] 1330번 두 수 비교하기 - 자바 / java (2) | 2024.04.02 |
---|---|
[백준] 10172번 개 - 자바/java (0) | 2024.04.02 |
[백준] 11719번 그대로 출력하기2 - 자바/java (0) | 2024.03.28 |
[백준] 11718번 그대로 출력하기 - 파이썬/python3 (0) | 2024.03.28 |
[백준] 10869번 사칙연산 - 파이썬/python3 (1) | 2024.03.27 |