
✅ 문제
개 출력하기
이스케이프 코드(Escape Sequance)를 이해하기 위한 문제
📥 입력
없음
📥 출력
개를 출력한다
💡 풀이
이 문제는 고양이 문제랑 매우 유사하다.
이스케이프 코드 정리 ▼
✅ 1. System 클래스(표준 입출력)
개 그림을 드래그해서 그대로 복사해서 이클립스에 붙여 넣으면 줄 끝에 \r\n이 자동으로 붙는다.
System.out.println("|\\_/|\r\n"
+ "|q p| /}\r\n"
+ "( 0 )\"\"\"\\\r\n"
+ "|\"^\"` |\r\n"
+ "||_/=\\\\__|");
가독성을 위해 \r\n을 지워 주고
각 줄마다 System.out.println("") 안에 코드를 집어 넣어 준다.
public class Main {
public static void main(String[] args) {
System.out.println("|\\_/|");
System.out.println("|q p| /}");
System.out.println("( 0 )\"\"\"\\");
System.out.println("|\"^\"` |");
System.out.println("||_/=\\\\__|");
}
}
✅ 2. StringBuilder 객체를 이용한 풀이
StringBuilder 는 여러 문자열을 append (확장) 시켜준다.
그래서 행이 여러개 있더라도 실제로는 sb에 하나의 문자열로 연결된다.
따라서 각 줄 끝에 \n를 써서 개행해줘야 한다.
(개행 메소드가 없다.)
public class Main {
public static void main(String[] args){
StringBuilder sb = new StringBuilder();
sb.append("|\\_/|\n");
sb.append("|q p| /}\n");
sb.append("( 0 )\"\"\"\\\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("|q p| /}");
bw.newLine();
bw.write("( 0 )\"\"\"\\");
bw.newLine();
bw.write("|\"^\"` |");
bw.newLine();
bw.write("||_/=\\\\__|");
bw.flush();
bw.close();
}
}
'코딩테스트 > BaekJoon' 카테고리의 다른 글
| [백준] 9498번 시험성적 - 자바 / java (1) | 2024.04.04 |
|---|---|
| [백준] 1330번 두 수 비교하기 - 자바 / java (2) | 2024.04.02 |
| [백준] 10171번 고양이 - 자바/java (0) | 2024.04.02 |
| [백준] 11719번 그대로 출력하기2 - 자바/java (1) | 2024.03.28 |
| [백준] 11718번 그대로 출력하기 - 파이썬/python3 (0) | 2024.03.28 |