[★1][백준10172번]개 (JAVA)

Date:     Updated:

카테고리:

태그:

[★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)을 넣어 줄 바꿈을 하여 출력할 수 있다. 그 방법은 이 전 게시물을 참고하세요.

이전 게시물 ☞ https://seungm2n.github.io/bkjn/bj12/

[ 풀이 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);

	}

}

BKJN 카테고리 내 다른 글 보러가기

댓글 남기기