Algorithm/BOJ(Baekjoon Online Judge)
[백준 - 17363번] 우유가 넘어지면? - Java //Wello Horld//
koucop
2019. 8. 6. 14:41
이번에는 BOJ의 17363번 문제 "우유가 넘어지면?" 을 풀어보도록 하자
위에 나와 있는 그림과 같이, "우유" 를 넘어 뜨려서 "아야"로 만들면 되는 문제이다.입력으로 주어지는 문자열들을 요리조리 잘 재배치 시키고, 문제에 나와 있는 표를 활용해서 풀면 된다.
성공한 코드는 아래와 같다.
import java.io.*;
import java.util.*;
public class sample {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
char[][] input = new char[N][M];
for(int i = 0; i < N; i++){
String line = br.readLine();
for(int j = 0; j < M; j++){
input[i][j] = line.charAt(j);
}
}
for(int i = M - 1; i >= 0; i--){
for(int j = 0; j < N; j++){
bw.write(reverse(input[j][i]));
}
bw.write("\n");
}
bw.flush();
br.close();
bw.close();
}
public static char reverse(char c){
if(c == '-') return '|';
if(c == '|') return '-';
if(c == '/') return '\\';
if(c == '\\') return '/';
if(c == '^') return '<';
if(c == '<') return 'v';
if(c == 'v') return '>';
if(c == '>') return '^';
return c;
}
}
문제 : https://www.acmicpc.net/problem/17363
17363번: 우유가 넘어지면?
첫 줄에 그림의 세로 길이와 가로 길이를 의미하는 정수 N과 M(1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에 걸쳐 그림의 각 줄을 의미하는 M글자의 문자열이 하나씩 주어진다. 문자열은 공백을 포함하지 않으며 위의 표에 주어진 문자로만 이루어져 있음이 보장된다.
www.acmicpc.net