Inor
[백준] 10798번 세로읽기 본문
- 문제 : https://www.acmicpc.net/problem/10798
가로로 쓰여진 단어를 세로로 변경하고 빈칸인 부분은 무시해서 이어 붙여주면 되는 문제 입니다.
- 풀이
경사로 문제와 비슷하게 해결했습니다. for문에서 row와 col의 위치를 변경해주는 것이 아니라 애초에 위치가 변경된 배열을 선언하고 위치를 재배열 해줬습니다. 그 이후에는 비어있는 공간을 특정 문자로 채우고 특정 문자가 있을 경우에는 건너 뛰어서 계산하도록 했습니다.
- 코드
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class ReadingVertically { static final char noneValue = '-'; StringBuffer sb; BufferedReader br; char[][] characters; char[][] charactersRelocated; void setValues() { String oneLine; char[] charactersAtLine; sb = new StringBuffer(); characters = new char[5][15]; charactersRelocated = new char[15][5]; for (int i = 0; i < charactersRelocated.length; i++) { Arrays.fill(charactersRelocated[i], noneValue); } br = new BufferedReader(new InputStreamReader(System.in)); try { for (int i = 0; i < characters.length; i++) { oneLine = br.readLine(); charactersAtLine = oneLine.toCharArray(); for (int j = 0; j < charactersAtLine.length; j++) { characters[i][j] = charactersAtLine[j]; charactersRelocated[j][i] = characters[i][j]; } } } catch (IOException e) { e.printStackTrace(); } } void solve() { setValues(); for (int i = 0; i < charactersRelocated.length; i++) { for (int j = 0; j < charactersRelocated[i].length; j++) { if(charactersRelocated[i][j] == noneValue){ continue; } sb.append(charactersRelocated[i][j]); } } System.out.println(sb.toString()); } public static void main(String[] args) { ReadingVertically m = new ReadingVertically(); m.solve(); } }
'Algorithm > 백준' 카테고리의 다른 글
[백준] 10814번 나이순 정렬 (0) | 2018.02.01 |
---|---|
[백준] 12761번 돌다리 (0) | 2018.01.31 |
[백준] 1992번 쿼드트리 (0) | 2018.01.28 |
[백준] 2573번 빙산 (0) | 2018.01.12 |
[백준] 1963번 킹 (0) | 2018.01.11 |
Comments