hahn

[백준 - JAVA] 단어 정렬 /// 진행 중 본문

코딩테스트 연습/백준(JAVA)

[백준 - JAVA] 단어 정렬 /// 진행 중

hahn 2021. 9. 11. 23:31
728x90
반응형

1181번: 단어 정렬 (acmicpc.net)

 

1181번: 단어 정렬

첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.

www.acmicpc.net

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

class Main{
    
    public static void main(String[] args) throws IOException{
        
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int wordCount = Integer.parseInt(br.readLine());
		String[] wordArr = new String[wordCount];
		String store;
		for(int i = 0; i < wordCount; i++) {
			
			wordArr[i] = br.readLine();
			
		}
		
		for(int i = 0; i < wordArr.length; i++) {
			
			store = wordArr[i];
			
			for(int j = i + 1; j < wordArr.length; j++) {
				
				if(wordArr[i].length() > wordArr[j].length()) {
					
					wordArr[i] = wordArr[j];
					wordArr[j] = store;
					store = wordArr[i];
					
				}else if(wordArr[i].length() == wordArr[j].length()) {
					
					if(wordArr[i].length() < 6) {
						
						if(wordArr[i].hashCode() > wordArr[j].hashCode()) {
							
							wordArr[i] = wordArr[j];
							wordArr[j] = store;
							store = wordArr[i];
							
						}
						
					}else {
						
						for(int k = 0; k < wordArr[i].length(); k++) {
							
							if((int)wordArr[i].charAt(k) > (int)wordArr[j].charAt(k)) {
								
								wordArr[i] = wordArr[j];
								wordArr[j] = store;
								store = wordArr[i];
								
							}
							
						}
						
					}
					
				}
				
			}
			
		}
		
		for(int i = 0; i < wordArr.length; i++) {
			
			if(i > 0) if(wordArr[i].equals(wordArr[i-1])) continue;
			bw.write(wordArr[i] + "\n");
			
		}
		
		bw.close();
        
    }
    
}

11시 쯤 겜 끝내고

 

자기 전에 한 문제 대충 풀고 자려했는데

 

나름 기준 세워서 정렬해 봤는데

 

시간 초과..

728x90
반응형