java에서 sort와 compare를 사용해봤다.
Collections.sort(컨테이너, new Comparator<타입>(){
@Override
public int compare(A, B)
{
.....
}
});
형태이다. 이때 결과는 작으면 -1, 같으면 0, 크면 1로 나온다.
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
import java.util.Vector;
public class bj2204 {
static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
int n;
while(true)
{
n = scanner.nextInt();
if(n == 0)
{
break;
}
else
{
Vector<String> data = inputData(n);
System.out.println(findAnswer(data));
}
}
scanner.close();
}
public static Vector<String> inputData(int n)
{
Vector<String> data = new Vector<>();
int i;
String temp;
for(i = 0; i < n; i++)
{
temp = scanner.next();//공백 포함 안함
data.add(temp);
}
return data;
}
public static String findAnswer(Vector<String> data)
{
String answer = "";
int i;
// for(String temp : data)
// {
// System.out.print(temp + " ");
// }
Collections.sort(data, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
String lowerS1 = s1.toLowerCase();
String lowerS2 = s2.toLowerCase();
int result = lowerS1.compareTo(lowerS2);
if(result == 0)//소문자가 같으면
{
return s1.compareTo(s2);
}
else
{
return result;
}
}
});
answer = data.get(0);
return answer;
}
}