[BaekJoon] 10171번 - 고양이 (java)
1. 문제
👉 문제 바로가기
- 조건
시간 제한 | 메모리 제한 |
---|---|
1초 | 256MB |
- 문제
아래 예제와 같이 고양이를 출력하시오.
- 입력
없음
- 출력
고양이를 출력한다.
- 예제
입력 | 출력 |
---|---|
\ / \ ) ( ’ ) ( / ) \ (_ _)| |
2. 풀이
자바에서 백슬래시( \ )
와 따옴표( ' , " )
등은 그 자체만으로 출력되지 않는 문자이다.
이러한 문자를 출력하기 위해 문자 앞에 백슬래시( \ )
를 넣어주는데, 이 조합을 이스케이프 시퀀스(Escape Sequence)라고 한다.
입력 | 출력 |
---|---|
\ \ | | |
\ ‘ | ’ |
\ “ | ” |
\n | 줄 바꿈 |
\r | 줄의 맨 처음으로 |
\t | 탭 |
\b | 커서를 한 문자 앞으로(backspace) |
\0 | 빈칸(null) |
3가지 방법을 사용해서 출력을 해보려 한다.
- System.out.println()
- BufferedWriter 클래스
- StringBuilder 클래스
- 1. System.out.println()
고양이 그림 문자열은 위 문제의 예제 출력을 드래그해서 복사하면 된다.
가독성을 높이기 위해 ‘\n’ 을 지우고 각 행마다 println()을 사용했다.
public class Main {
public static void main(String[] args) {
System.out.println("\\ /\\");
System.out.println(" ) ( ')");
System.out.println("( / )");
System.out.println(" \\(__)|");
}
}
- 2. BufferedWriter 클래스
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();
}
}
write()
메서드 안에 출력하고자 하는 문자열을 쓴다.
newLine()
메서드로개행
을 해준다. 또는, write() 안에 ‘\n’을 붙여줘도 된다.
flush()
메서드로 스트림에 들어있는 데이터를 비우고 출력한다.
close()
메서드로 사용한 스트림을 종료하고 자원을 반환한다.
- 3. StringBuilder 클래스
public class Main {
public static void main(String[] args){
StringBuilder sb = new StringBuilder();
sb.append("\\ /\\\n");
sb.append(" ) ( ')\n");
sb.append("( / )\n");
sb.append(" \\(__)|\n");
System.out.println(sb);
}
}
StringBuilder
는 개행해주는 메소드가 없기 때문에 각 문자열의 끝에\n
으로 개행을 해준다.
append()
메서드는 뒤에 계속해서 문자열을 추가해주는 함수이다.
관련 페이지
Leave a comment