본문 바로가기

백준 문제풀기/JAVA

[백준 2204 JAVA 자바] 도비의 난독증 테스트

 

대소문자 신경쓰지 않고

사전상 가장 앞에 있는 단어를 출력합시다

 

딱 보면 전부 대문자(소문자)로 변환하고

사전순으로 sort하면 되겠다!!!

 

싶었지만

보이는 바와 같이 대문자와 소문자를 섞어서 출력해야합니다

 

1. 일단 입력을 받고요

2. 정렬할 때!만 소문자로 바꿔서

3. 출력합시다

 

코드입니다

 

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));
        StringBuilder sb = new StringBuilder();
               
        while (true) {
        	int n = Integer.parseInt(br.readLine());
        	
        	if(n==0) {
        		break;
        	}
        	
        	String[] arr = new String[n];
        	
        	for(int i=0; i<n; i++) {
        		arr[i] = br.readLine();
        	}
        	
        	Arrays.sort(arr, new Comparator<String>() {
    			public int compare(String s1, String s2) {
    				return s1.toLowerCase().compareTo(s2.toLowerCase());
    			}
    		});        	
        	sb.append(arr[0]).append("\n");
        }        
        System.out.println(sb);
    
    }
}

 

s1.toLowerCase()는 소문자로 바꾸는 부분이고요

 

str.compareTo(str)은 Comparator에서 sort하는데 필요한 부분입니다