반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자바의정석연습문제풀이
- 백준단계별로풀어보기
- 백준9단계
- Java개념
- dp
- 자바공부
- ☆
- 알고리즘
- 빅오 표기법
- ★
- 무료코딩강의
- 자바의정석연습문제
- 동적계획법
- 무료개발강의
- 자바의정석
- 백준알고리즘
- java
- BFS
- 코딩공부
- dfs
- 백준자바
- 브루트포스
- 백준
- 개발공부
- 자바개념
- 백트래킹
- 시간 복잡도
- 자바
- 알고리즘공부
- 다이나믹 프로그래밍
Archives
- Today
- Total
더 많이 실패하기
공부 93일차: 백준 11656번 접미사 배열 자바 Java 본문
반응형
11656 접미사 배열
https://www.acmicpc.net/problem/11656
11656번: 접미사 배열
첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다.
www.acmicpc.net
백준 11656번 문제 접미사 배열
문제
과정 생각해보기
1) 문자열 입력받으면 앞에서부터 한글자씩 빼면서 담아두기 - 2중 for문 사용
2) 사전순으로 정렬 - comparator, comparaTo 이용
정답 인정 코드
1) 2중for문 + compareTo
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
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
String arr[] = new String[str.length()];
for(int i = 0; i < str.length(); i++) {
arr[i] = "";
for(int j = i; j < str.length(); j++) {
arr[i] += str.charAt(j); //2중for문으로 한 글자씩 빼면서 배열에 담기
}
}
// System.out.println(Arrays.toString(arr)); 디버깅코드
Arrays.sort(arr, new Comparator <String>(){
public int compare(String s1, String s2) {
return s1.compareTo(s2); //compareTo는 사전순 배열
}
});
for(String s : arr) {
System.out.println(s);
}
}
}
|
cs |
과정 설명과 주석에 적힌 대로 작성한 코드
2) substring() + Arrays.sort()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
String arr[] = new String[str.length()];
for(int i = 0; i < str.length(); i++) {
arr[i] = str.substring(i, str.length());
}
Arrays.sort(arr);
for(String s : arr) {
System.out.println(s);
}
}
}
|
cs |
찾아보니 이렇게 간단한 방법도 있었다substring은 자바에선 처음 써보는 것 같다
Arrays.sort도 사전순 정렬이 된다
반응형
'알고리즘 > 백준' 카테고리의 다른 글
공부 95일차: 백준 1934번 최소공배수 자바 java (0) | 2022.11.02 |
---|---|
공부 94일차: 백준 2609번 최대공약수와 최소공배수 자바 java (0) | 2022.11.01 |
공부 92일차: 백준 10824번 네 수 자바 Java (0) | 2022.10.30 |
공부 91일차-1: 백준 2743번 단어 길이 재기 자바 Java (0) | 2022.10.29 |
공부 90일차: 백준 10820번 문자열 분석 자바 Java (0) | 2022.10.28 |
Comments