1. 문제
https://www.acmicpc.net/problem/10798
2. 풀이
- 이 문제는 앞 전에 char 형태의 배열을 활용하여 풀었던 문제이다. 친구가 int 형 배열로 바꾸어 구현해보라고 하여 다시 풀어본다.
- char 형태 배열은 초기값이 '\0'으로 정해져 있지만 int 는 초기값이 0이다. 허나 예제 입력에 0이 입력될 수 있기 때문에 Arrays.fill 메소드를 사용하여 배열에 전부 10이란 값을 초기값으로 지정해주었다.
- charAt()을 메소드를 사용하여 그 값을 배열에 넣어준다. (char 타입과 int 타입의 연산은 형변환 없이 연산이 가능하다. char형 문자들을 int형 변수에 대입하면 문자 값에 해당하는 아스키코드 10진수 코드로 변환되기 떄문이다.)
- 마지막 조건문에 배열 안에 값이 10이면 continue를 해준다. (앞전에는 공백 or '\0'이 같으면 continue를 해주었지만, int는 공백이 없고 초기값으로 10을 지정했기 때문에 10이란 조건을 준 것이다.)
- 출력을 char형태로 캐스팅하여 출력한다.
3. 코드
package baekjoon;
import java.util.Arrays;
import java.util.Scanner;
public class Q10798 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[][] arr = new int[5][15];
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 15; j++) {
Arrays.fill(arr[i], 10);
}
}
for (int i = 0; i < 5; i++) {
String str = scanner.next();
for (int j = 0; j < str.length(); j++) {
arr[i][j] = str.charAt(j);
}
}
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 5; j++) {
if (arr[j][i] == 10) {
continue;
}
System.out.print(((char) arr[j][i]));
}
}
}
}
'Algorithm' 카테고리의 다른 글
[Java] 백준 2309번 : 일곱 난쟁이 (0) | 2022.02.23 |
---|---|
[Java] 백준 2495번 : 연속구간 (0) | 2022.02.19 |
[Java] 백준 10804번 : 카드 역배치 (0) | 2022.02.16 |
[Java] 백준 10798번 : 세로읽기 (0) | 2022.02.15 |
[Java] 백준 1316번 : 그룹 단어 체커 (0) | 2022.02.14 |