알고리즘 공부/백준 문제풀이

[백준] 11945 : 뜨거운붕어빵 (JAVA)

송테이토 2022. 10. 28. 23:31

뜨거운 붕어빵

시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율

1 초 32 MB 6777 4089 3633 63.447%

문제

고려대학교에 입학한 새내기 호돌이는 안암역을 지나다가 한 붕어빵 장수를 만났어요.

“안녕, 안녕, 안녕하십니까, 아저씨! 붕어빵 두 개 주세요.”

“안녕을 세 번 외쳤으니 붕어빵 세 개!”

붕어빵 두 개의 값을 내고 세 개를 받은 호돌이는 기분이 좋았어요. 호돌이가 붕어빵 하나를 꺼내어 한 입 물었는데…. 너무 뜨거워서 그만 붕어빵을 떨어뜨리고 말았어요ㅠㅠ

 

붕어빵은 자유 낙하운동을 하면서 땅에 떨어졌는데 신기하게도 좌우가 뒤집힌 모양으로 착지했답니다. 호돌이가 붕어빵을 한 입 물기 전의 모양이 입력으로 주어지면, 땅에 떨어졌을 때에는 어떤 모양일지 출력하세요.

입력

첫째 줄에는 두 개의 정수 N과 M(0≤N,M≤10)이 주어집니다. 둘째 줄부터 N개의 줄에 걸쳐 붕어빵의 모양이 주어집니다. 각 행에는 공백을 나타내는 ‘0‘ 또는 붕어빵을 나타내는 ‘1’이 총 M개 주어집니다.

출력

입력으로 주어진 붕어빵이 좌우로 뒤집힌 모양을 출력하세요.

예제 입력 1

5 7
0010000
0111010
1111111
0111010
0010000

예제 출력 1

0000100
0101110
1111111
0101110
0000100

힌트

입력으로 주어지는 각 행을 반전시켜서 출력하면 됩니다. 입력의 1행 1열은 출력의 1행 M열로, 입력의 1행 2열은 출력의 1행 M-1열로 … 입력의 1행 M열은 출력의 1행 1열로 … 입력의 N행 M열은 출력의 N행 1열로 출력하세요.

 

방법1.

Stringbuilder reverse 사용

package Day1024;

import java.util.Scanner;

public class B11945_2 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int x = sc.nextInt();
		int y = sc.nextInt();

		for (int i = 0; i < x; i++) {
			while (sc.hasNext()) {
				StringBuilder sb = new StringBuilder(sc.next());
				System.out.println(sb.reverse());
			}
		}
		sc.close();
	}

}

방법2.

하나씩 끊어서 출력해주기

package Day1024;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class B11945 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		String str[] = br.readLine().split(" "); //한 줄을 읽어와서 N행짜리 배열 삽입
		int N = Integer.parseInt(str[0]);
		int M = Integer.parseInt(str[1]);

		for (int i = 0; i < N; i++) {
			String result = br.readLine();
			for (int j = 0; j < M; j++) {
				bw.write(result.charAt(M - j - 1));
			}
			bw.write("\\n");
		}
		bw.flush();
		bw.close();
		br.close();
	}

}