본문 바로가기
Computer/Algorithm_Java

[BaekJoon] 10798번 세로읽기 문제풀이 (Success)

by HJ0216 2023. 6. 11.
 

10798번: 세로읽기

총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’

www.acmicpc.net

 

Language: Java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
 
public class Main {
    public static void main(String[] args) throws Exception {
 
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
 
        char[][] charArr = new char[5][15];
        int maxLength = 0;
        
        for(int i=0; i<5; i++) {
            String s = br.readLine();
            maxLength = Math.max(maxLength, charArr[i].length);
            for(int j=0; j<s.length(); j++)
                charArr[i][j] = s.charAt(j);
        }
 
        StringBuilder sb = new StringBuilder();
 
        for (int i=0; i<maxLength; i++) {
            for (int j=0; j<5; j++) {
                if (charArr[j][i] == '\0') {
                    continue;
                }
                sb.append(charArr[j][i]);
            }
        }
 
        bw.write(sb.toString());
        
        bw.flush();
    }
}
 
 
 

⭐ char[]와 Chacter[] 차이

: Character 클래스는 char 값을 포장하고 추가적인 기능을 제공하기 위해 사용

→  문자열을 다루거나 문자 검색과 같은 고급 문자 작업을 수행해야 할 때 Character[]을 사용

: 대부분의 경우, 문자 배열을 나타내기 위해 char[]을 사용하는 것이 더 간단하고 효율적

 

StringBuffer()와 StringBuilder() 차이

: StringBuffer - 동기화 → 멀티스레드 환경에서 동기화가 필요하거나 스레드 안전성이 중요한 경우

: StringBuilder - 비동기화  단일 스레드 환경에서 문자열 조작을 수행하고 성능에 중점을 둘 경우

: 에는 StringBuffer를 사용하는 것이 적합

 

* 오버헤드(overhead): 추가 작업으로 인한 성능 저하

* 스레드(thread): 프로세스 내에서 독립적으로 실행될 수 있는 작은 실행 단위

 

 

 

소스 코드
🔗 HJ0216/TIL/BOJ