ejyoo's 개발 노트

10171번 : 고양이 본문

문제풀이/백준 입출력과 사칙연산

10171번 : 고양이

ejyoovV 2021. 3. 3. 10:42

👉🏻 4가지 풀이 방법을 이용한다.

System클래스, BufferedReader, StringBuilder, StringBuffer를 이용하여 풀이한다.

👉🏻 자바에서는 몇몇 문자는 단독으로 써서 출력할 수 없다.(대표적으로 백슬래시와 큰 따옴표가 있다.)

그래서 문자를 출력하기 위해 조합을 만들어서 출력할 수 있도록 하는데 이를 Escape Sequance라고 한다.

이스케이프 시퀀스는 백슬래시(\) + 문자의 조합으로 쓰인다.

\또한 단독으로 출력이 불가능한 문자다. 실제로 이클립스에서 코딩하면 아래와 같이 경고가 뜬다.

여기서 백슬래시 + 문자 조합을 사용하여 백슬래시를 두번쓰면 오류 없이 해결된다.

이렇게 하고 컴파일 시 역슬래시 하나만 출력이 가능하다.

👉🏻 방법1. (System 클래스 - 표준 입출력)

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();
	}
}

각 라인마다 bw.newLine(); 으로 개행을 해준다. 물론 이를 쓰지 않고 각 write 마다 \n을 붙여줘도 된다.

이후 bw.flush() 로 스트림에 들어있는 데이터를 비운다.

그리고 bw.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으로 개행해준다.

👉🏻 방법4 StringBuffer

public class Main {
	public static void main(String[] args){
 
		StringBuffer sb = new StringBuffer();
		sb.append("\\    /\\\n");
		sb.append(" )  ( ')\n");
		sb.append("(  /  )\n");
 		sb.append(" \\(__)|\n");
		
		System.out.println(sb);
	}
}

StringBuilder와 동일하다.

👉🏻 정리

가장 중요한 키워드는 이스케이프 문자(제어문자) 이지 않을까 싶다.

'문제풀이 > 백준 입출력과 사칙연산' 카테고리의 다른 글

2557번 : Hello World 출력하기  (0) 2021.03.03
10718번 : We love kriii  (0) 2021.03.03
10172번 : 개  (0) 2021.03.03
1000번 : A+B  (0) 2021.03.03
1001번 : A-B  (0) 2021.03.03