문제풀이
[백준 (Baekjoon)] (java) 문제 1181 - 오답 (Bubble sort)
Ju Young Pang
2022. 4. 16. 12:28
https://www.acmicpc.net/problem/1181
1181번: 단어 정렬
첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.
www.acmicpc.net
1) 업로드 이유
- Bubble sort를 구현해 봤으나 시간초과에 걸린다는걸 발견. 하지만 버블소트를 구현해 본 것 만으로도 그 의미가 있다고 생각하여 업로드함.
2) 코드
import java.io.*;
public class p1181_bubble{
static BufferedReader br;
static BufferedWriter bw;
static int N;
static String[] list;
public static void main(String[] args) throws IOException{
br = new BufferedReader(new InputStreamReader(System.in));
bw = new BufferedWriter(new OutputStreamWriter(System.out));
N = Integer.parseInt(br.readLine());
list = new String[N];
for(int i=0;i<N;i++){
list[i] = br.readLine();
}
for(int rep=0; rep<N; rep++){
for(int i=0;i<N-1;i++){
if(list[i].length() == list[i+1].length()){
if(list[i].compareTo(list[i+1])>0){
swap(i,i+1);
}
}
else if(list[i].length()>list[i+1].length()){
swap(i,i+1);
}
}
}
StringBuilder sb = new StringBuilder();
for(int i=0;i<N-1;i++){
if(!list[i].equals(list[i+1])) sb.append(list[i]).append("\n");
}
sb.append(list[N-1]).append("\n");
bw.write(sb.toString());
bw.flush();
bw.close();
br.close();
}
private static void swap(int i, int j){
String temp = list[i];
list[i] = list[j];
list[j] = temp;
}
}