[★1][백준10172번]개 (JAVA)
카테고리: BKJN
태그: Algorithm Java Coding Test
[★1][백준10172번]개 (JAVA)
10172번 문제 ☞ https://www.acmicpc.net/problem/10172
난이도 ☞ [★1]
개
- 문제
-
아래 예제와 같이 개를 출력하시오.
예제입력 예제출력 |\/|
|q p| /}
( 0 )”””\
|”^”` |
||/=\\__|
-
내가 푼 풀이
우선 들어가기에 앞서 자바에서는 몇몇 문자를 단독으로 써서 출력할 수 없는데, 대표적으로 백슬래시(\)와 큰 따옴표(“)가 있다. 그래서 이러한 문자를 출력하기 위해서는 조합을 만들어 출력할 수 있도록 하는데 이를 이스케이프 시퀀스(Escape Sequance)라고 한다. 이스케이프 시퀀스는 백슬래시 + 문자
조합으로 쓰인다.
이 전 문제에서는 표출 입출력과 BufferedWriter
를 통하여 구현하였다. 이번 문제는 표출입출력과 StringBuilder
를 이용하여 구현해보도록 하겠습니다.
[ 풀이 1 ]
메모리 :
13940KB
시간 :124ms
System클래스(표준 입출력)
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("||_/=\\\\__|");
}
}
풀이 1번은 가장 기본적인 출력형식으로 출력하였다. 스페이스까지 맞추어줘야해서 많이 까다롭고 힘들었다. 기본 입출력은 위의 방식말고도 (\n)을 넣어 줄 바꿈을 하여 출력할 수 있다. 그 방법은 이 전 게시물을 참고하세요.
[ 풀이 2 ]
메모리 :
14112KB
시간 :112ms
StringBuilder
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("||_/=\\\\__|");
System.out.println(sb);
}
}
StringBuilder
는 자동으로 개행해주는 메서드가 없기 때문에 각 열 끝에 (\n)으로 개행을 해준다.
그 외에도 StringBuffer
로도 구현 가능하며, StringBuilder
와 똑같이 작성하면 된다. 다음 코드는 아래와 같다.
[ 풀이 3 ]
메모리 :
13920KB
시간 :120ms
BufferedWriter
public class Main {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
sb.append("|\\_/|\n");
sb.append("|q p| /}\n");
sb.append("( 0 )\"\"\"\\\n");
sb.append("|\"^\"` |\n");
sb.append("||_/=\\\\__|");
System.out.println(sb);
}
}
댓글 남기기