코딩테스트

[백준] 2204번 : 도비의 난독증 테스트 자바(JAVA) 풀이

hye-ne 2024. 9. 26. 14:09

문제


https://www.acmicpc.net/problem/2204


문제 탐색하기

  • n : 단어 개수 
  • 입력 : 알파벳 대소문자로 이루어진 단어 n개
  • 출력 : 대소문자 구분없이 사전순으로 나열 후 가장 첫 번쨰 단어 출력

가능한 시간복잡도

거의 모든 정렬 함수는 N개의 원소를 정렬할 때 O(NlogN)의 시간복잡도 가짐

 


코드 설계하기

  1. 단어 개수 N를  입력받는다.
  2. 단어를  Array로 저장한다.
  3. 사전 순에 따라 정렬한다.
  4. 정렬된 배열 중 가장 첫 번째 단어를 출력한다. 

풀이 코드

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));
		int n = 0; // 단어개수
		String[] strArray;
		
		while(true) {
			n = Integer.parseInt(br.readLine());
			
			// 입력받은 값이 0이면 종료
			if(n==0) {
				break;
			}
			
			strArray = new String[n];
			
			for(int i=0;i<n;i++) {
				strArray[i] = br.readLine();
			}
			
			Arrays.sort(strArray, new Comparator<String>() {
				@Override
				public int compare(String s1, String s2) {
					return s1.toUpperCase().compareTo(s2.toUpperCase());
				}
			});
			
			System.out.println(strArray[0]);
		}
		
	}
}