본문 바로가기
백준온라인

(JAVA)백준 온라인 11656번 - 접미사 배열

by 진드윽이 2023. 8. 4.

이번에도 쉬운 문제이지만 나에게는 어려운 문제였다..

이번에도 역시나 이상한 방법으로 접근을 했었다 저 baekjoon이 있다면은 각각 알파벳을 배열에 하나하나 저장하고 정렬을 한 다음 이중 for문으로 어쩌구 저쩌구.. 아무튼 잘못 했었다 로직은 얼추 비슷했지만 틀렸다

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String word = br.readLine();		//문자열 입력
        String[] ary = new String[word.length()];	// 접미사 담을 배열 선언

        for(int i=0; i<word.length(); i++){
                ary[i] = word.substring(i, word.length()); // 0번 배열부터 잘라서 삽입
        }
        Arrays.sort(ary);	//정렬

        for(int i =0; i<ary.length; i++){
            System.out.println(ary[i]);
        }

    }
}

이번 문제는 나에게는 생소했던 메서드인 substring() 메서드를 사용하였다

그래서 구글링을 해서 알아본 결과 

substring() 메서드는 간단하게 문자열을 자르는 메서드인데

 

1. public String substring(int start)

2. public String substring(int start, int last)

 

이렇게 두가지로 사용할 수 있다.

1. substring(int start): 만약 "baekjoon"이 입력된 상태이고 substring(2)라면? 0부터 1요소를 제외한 2번째 요소인 'e'부터 마지막 요소까지 잘라서 돌려준다

2. substring(int start, int last): "baekjoon"이 입력된 상태이고 substring(2, 5)라면? 0부터 1까지 요소를 제외하고, 5부터 마지막 요소까지 제외한 나머지를 잘라서 돌려준다

헤헤