문제 링크
주의사항
- JAVA를 사용하여 프로그램을 사용하였습니다.
- 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{
public static void main(String[] args){
}
}
문제 설명
접근 방법
이 문제에 핵심
1. 5개 단어가 주어졌을 때 새로로 읽어서 단어를 만듭니다.
2. 세로로 만든 문자열들을 모두 연결하여 하나의 문자열로 만들고 결과로 출력합니다.
3. 단어의 길이는 동일하지 않으며 첫 번째와 마지막 글자는 공백으로 입력되지 않습니다.
알고리즘 진행 순서.
1. 입력되는 단어들을 저장합니다.
2. 각 단어에 글자에 대한 열 위치에 따라 문자열을 만듭니다.
3. 만들어진 문자열을 순서대로 연결하여 결과로 출력합니다.
예제입력 2.
1. 입력되는 단어들을 저장합니다.
AABCDD
afzz
09121
a8EWg6
P5h3kx
2. 각 단어에 글자에 대한 열 위치에 따라 문자열을 만듭니다.
A | A | B | C | D | D |
a | f | z | z | ||
0 | 9 | 1 | 2 | 1 | |
a | 8 | E | W | g | 6 |
P | 5 | h | 3 | k | x |
AABCDD
1열 문자열 : A
2열 문자열 : A
3열 문자열 : B
4열 문자열 : C
5열 문자열 : D
6열 문자열 : D
afzz
1열 문자열 : Aa
2열 문자열 : Af
3열 문자열 : Bz
4열 문자열 : Cz
5열 문자열 : D
6열 문자열 : D
09121
1열 문자열 : Aa0
2열 문자열 : Af9
3열 문자열 : Bz1
4열 문자열 : Cz2
5열 문자열 : D1
6열 문자열 : D
a8EWg6
1열 문자열 : Aa0a
2열 문자열 : Af98
3열 문자열 : Bz1E
4열 문자열 : Cz2W
5열 문자열 : D1g
6열 문자열 : D6
P5h3kx
1열 문자열 : Aa0aP
2열 문자열 : Af985
3열 문자열 : Bz1Eh
4열 문자열 : Cz2W3
5열 문자열 : D1gk
6열 문자열 : D6x
3. 만들어진 문자열을 순서대로 연결하여 결과로 출력합니다.
1열 문자열 : Aa0aP
2열 문자열 : Af985
3열 문자열 : Bz1Eh
4열 문자열 : Cz2W3
5열 문자열 : D1gk
6열 문자열 : D6x
= "Aa0aPAf985Bz1EhCz2W3D1gkD6x"을 결과로 출력합니다.
- BufferedReader를 사용하여 입력 값을 받았습니다.
- 5개 단어의 글자들을 탐색하여 열 위치에 따라 글자들을 따로 저장하여 문자열을 만들었습니다.
- 열 위치에 따라 만들어진 문자열들을 연결하여 BufferedWriter 저장하였습니다.
- BufferedWriter에 저장된 결과값을 출력하였습니다.
import java.io.*;
import java.util.ArrayList;
public class Main {
//각 열 위치별 만들어지는 문자열 저장 리스트
static ArrayList<String> list = new ArrayList<>();
public static void main(String[] args) throws IOException {
//입력값을 처리하는 BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//결과값을 출력하는 BufferedWriter
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//5가지 입력되는 단어들 탐색
for(int i=0;i<5;i++){
String input = br.readLine();
for(int j=0;j<input.length();j++){
if(list.size()<=j) //해당 열 위치의 첫 글자인 경우
list.add(input.charAt(j)+"");
else //열 위치에 문자열에 글자 추가
list.set(j,list.get(j) + input.charAt(j));
}
}
//각 열 위치 문자열 순차 연결 및 BufferedWriter 저장
for(int i=0;i<list.size();i++)
bw.write(list.get(i));
bw.flush(); //결과 출력
bw.close();
br.close();
}
}
'백준' 카테고리의 다른 글
[백준] 알고리즘 분류(문자열,JAVA)1373번, 2진수 8진수 (0) | 2022.09.18 |
---|---|
[백준] 알고리즘 분류(문자열,JAVA)2744번, 대소문자 바꾸기 (2) | 2022.09.16 |
[백준] 알고리즘 분류(문자열,JAVA)1439번, 뒤집기 (2) | 2022.09.15 |
[백준] code.plus(브루트 포스 Part 2,JAVA)17825번, 주사위 윷놀이 (0) | 2022.09.08 |
[백준] code.plus(브루트 포스 Part 2,JAVA)17085번, 십자가 2개 놓기 (0) | 2022.09.07 |
댓글