[★1][백준10171번]고양이 (JAVA)
카테고리: BKJN
태그: Algorithm Java Coding Test
[★1][백준10171번]고양이 (JAVA)
10171번 문제 ☞ https://www.acmicpc.net/problem/10171
난이도 ☞ [★1]
고양이
- 문제
-
아래 예제와 같이 고양이를 출력하시오.
예제입력 예제출력 – \ /\
) ( ‘)
( / )
\(__)|
-
내가 푼 풀이
우선 들어가기에 앞서 자바에서는 몇몇 문자를 단독으로 써서 출력할 수 없는데, 대표적으로 백슬래시(\)와 큰 따옴표(“)가 있다. 그래서 이러한 문자를 출력하기 위해서는 조합을 만들어 출력할 수 있도록 하는데 이를 이스케이프 시퀀스(Escape Sequance)라고 한다. 이스케이프 시퀀스는 백슬래시 + 문자
조합으로 쓰인다.
[ 풀이 1 ]
메모리 :
14128KB
시간 :112ms
System클래스(표준 입출력)
public class Main {
public static void main(String[] args){
System.out.println("\\ /\\");
System.out.println(" ) ( ')");
System.out.println("( / )");
System.out.println(" \\(__)|");
}
}
풀이 1번은 가장 기본적인 출력형식으로 출력하였다. 스페이스까지 맞추어줘야해서 많이 까다롭고 힘들었다. 풀이2 번은 같은 기본적인 출력형식이지만 (\n)을 넣어 줄 바꿈을 하여 출력하도록 구현하였다.
[ 풀이 2 ]
메모리 :
13996KB
시간 :112ms
System클래스(표준 입출력)
public class Main {
public static void main(String[] args) {
System.out.println("\\ /\\\n" +
" ) ( ')\n" +
"( / )\n" +
" \\(__)|");
}
}
이 외의 방법들도 있지만, 이 문제의 요점은 이스케이프 시퀀스인 것 같다. 하나의 풀이를 더 풀어보자면 BufferedWriter
을 쓰는 방식으로 구현할 수 있다. 코드는 아래와 같다. 앞의 문제들은 BufferedReader
를 썼다. 헷갈리지 않도록 주의해야한다.
[ 풀이 3 ]
메모리 :
13920KB
시간 :120ms
BufferedWriter
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
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();
으로 개행을 해주었는데, 이 또한 위의 풀이 2번처럼 \n
을 붙여줘서 풀어내려가도 된다. 그 후에 bw.flush()
로 스트림에 들어있는 데이터를 비워주고, bw.close()
로 스트림을 종료한다.
댓글 남기기