https://www.acmicpc.net/problem/2204
2204번 도비의 난독증 테스트 문제 링크입니다.
핵심
HashMap을 사용하여 기존의 문자열을 저장해주고, 전부 소문자로 바꾼다.
정답 코드
import java.util.Arrays;
import java.util.HashMap;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
HashMap<String,String> hashMap = new HashMap<>();
while (true){
int n = sc.nextInt();
if (n==0)break;
String[] str = new String[n];
for (int i= 0; i<n;i++){
str[i] = sc.next();
}
for (int i =0;i<n;i++){
String temp = str[i].toLowerCase();
hashMap.put(temp,str[i]);
str[i] = str[i].toLowerCase();
}
Arrays.sort(str);
System.out.println(hashMap.get(str[0]));
}
}
}
해설
HashMap을 선언한다. 이유는 문자열을 비교할 때 전부 소문자로 바꾸어서 비교를 할 건데,
기존의 문자열을 기억해야 하기 때문이다.
n개의 문자열을 받는데, 만약 n이 0이 들어오면 종료한다.
key값에는 소문자로 변환한 값을 넣는다. value값에는 기존의 문자열을 넣는다.
문자열 배열 str을 정렬시킨다.
정렬된 배열에서 첫 번째 배열의 value값을 출력한다.
개선점이나 오류가 있다면 댓글 부탁드립니다.
'PS > 알고리즘 문제풀이' 카테고리의 다른 글
[프로그래머스]2018 카카오 블라인드 공채, [1차]비밀지도(java) (0) | 2022.10.14 |
---|---|
[프로그래머스]문자열 내 마음대로 정렬하기(java) (0) | 2022.10.13 |
*재귀함수* division (0) | 2022.10.12 |
*String* 문자열 압축 (2) | 2022.10.09 |
*에라토스테네스의 체* chebyshevtheo (0) | 2022.10.01 |