백준(Backjoon) 10798, 세로읽기

2021. 6. 30. 10:56CodingTest

 

문제풀이

행과열을 이용한 이중 반복문으로 세로 읽기를 수행한다. 단, 바같쪽 반복문이 열이고 안쪽 반복문이 행이다. 유의해야할 점은 배열내에 각각의 행의 단어 길이가 다르다는 점인데 처음 입력을 받을때 빈칸인 부분은 null이 아닌 공백("")으로 저장한다. 다음과 같이 할 수 있는 이유는 한줄에 입력할 수 있는 단어들의 최대 길이가 15로 고정되어 있기 때문이다.

 

소스코드

public class Main {
	public static String solution(String[][] board)
	{
		StringBuilder sb = new StringBuilder();
		
		for(int col=0;col<15;col++)
		{
			for(int row=0;row<5;row++)
			{
				if(!board[row][col].equals(""))
				{
					sb.append(board[row][col]);
				}
			}
		}
		return sb.toString();
	}
	
	public static void main(String args[]) throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[][] board = new String[15][15];
		
		for(int i=0;i<5;i++)
		{
			String[] str = br.readLine().split("");
			for(int j=0;j<15;j++)
			{
				if(j<str.length)
				{
					board[i][j] = str[j];
				}
				else
				{
					board[i][j] = "";
				}
				
			}
		}
		System.out.println(solution(board));
	}
}

 

'CodingTest' 카테고리의 다른 글

백준(Backjoon) 11655, ROT13  (0) 2021.07.05
백준(Backjoon) 1076, 저항  (0) 2021.07.02
백준(Backjoon) 10816, 숫자 카드 2  (0) 2021.06.28
백준(Backjoon) 2164, 카드2  (0) 2021.06.25
백준(Backjoon) 10866, 덱  (0) 2021.06.25