알고리즘/이차원배열
백준 10798번 자바 세로읽기
GOMSHIKI
2023. 3. 1. 15:33
반응형
문제 : 가로 문자열로 입력받은 데이터를 세로로 읽기
입력데이터
문자열(Max = 15, Min = 1) | |
1번째 줄 | AABCDD |
2번째 줄 | afzz |
3번째 줄 | 09121 |
4번째 줄 | a8EWg6 |
5번째 줄 | P5h3kx |
출력데이터
Aa0aPAf985Bz1EhCz2W3D1gkD6x
주의할 점
각 줄마다 문자열 길이가 다름으로, 빈 글자가 있을 경우 다음번째 줄의 해당 위치 글자 값을 출력해야함!
Ex. 상기 예시 입력데이터를 참고하여, 아래와 같이 출력되어야함
첫번째 : AABCDD
두번째 : afzz
세번째 : 09121
출력 : Aa0..Af9..Bz1..Cz2..D1..D
package org.example.이차원배열;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class 세로읽기 {
public static void main(String[] args) throws IOException {
// 문자열 입력받기위한 BufferedReader 인스턴스 생성
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 이차원배열 선언
char[][] arrys = new char[5][15];
for (int i = 0; i < 5; i++) {
// 한 줄을 읽어들여 문자열 s로 정의
String s = br.readLine();
//입력받은 문자열 길이까지 for문 돌도록
for (int j = 0; j < s.length(); j++) {
// 문자열을 charAt을 이용해 한 글자씩 배열에 담기
arrys[i][j] = s.charAt(j);
}
}
// 출력할 StringBuilder 인스턴스 생성
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 5; j++) {
// char 이차원 배열이 '0'이 아니라면(배열에 값을 넣은 경우)
if (arrys[j][i] != 0) {
// StringBuilder에 문자열 한개씩 저장
sb.append(arrys[j][i]);
// 이차원 배열이 '0'으로 비였을 경우 아무것도 하지 않고 Continue
}else {
continue;
}
}
}
// 저장한 StringBuilder 출력!
System.out.println(sb.toString());
}
}
반응형