알고리즘 스터디 - 1주차 1

이강민·2024년 7월 20일
0

커널360

목록 보기
7/56
post-thumbnail

10798

  • 알고리즘 : 문자열
  • 난이도 : 브론즈1

문제

10798

접근

  1. 가로 읽기는 최소 1개 최대 15개의 글자들이 빈칸 없이 연속적으로 주어진다.
    -> 5개의 문자열의 길이가 서로 같거나 다름
  2. 읽어내려갈 때 비어있거나 없는 문자를 처리해야한다.
    -> 문자열을 반복할 때 분기로 처리한다.

가정

  1. 자료구조는 문자열 배열로 충분할 것
  2. 중첩 반복문으로 진행해도 시간 복잡도에서 걸리지 않을 것

풀어보기


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    static String[] s;
    static int N = 5;
    static int MaximumStringLength = 0;
    public static void main(String[] args) throws IOException {
        //세로 읽기
        //가로 읽기는 최소 1개 최대 15개의 글자들이 빈칸없이 연속적으로 주어진다.
        //접근
        // 1. 한줄에 주어지는 문자열은 길이가 모두 다르다.
        // 2. 읽어내려가면서 비어있거나 없는 문자열을 처리한다.
        // 3. 최대 출력 크기를 가진 문자열을 구한다.
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        s = new String[N];
        for(int i = 0; i < N; i++){
            s[i] = reader.readLine();
            if(s[i].length() > MaximumStringLength){
                MaximumStringLength = s[i].length();
            }
        }
        for(int i = 0; i<=MaximumStringLength; i++){
            for(int j = 0; j < N; j++){
                if(s[j].length() > i) {
                System.out.print(s[j].charAt(i));
                }
            }
        }


    }
}

시행착오들.

  • BufferedReader의 사용법을 잊어버려 다시 사용하는 방법을 찾아보았다.
    • readLine은 문자열을 리턴한다.
  • 중첩 반복문을 사용하할때 외부 반복문 조건 처리하는 구문을 잘 못 작성하여 값을 모두 가져 오지 않는 에러가 있었다.

BufferedReader 란?

BufferedReader 와 Scanner, BufferedWriter

profile
AllTimeDevelop

0개의 댓글

관련 채용 정보