Java/Java 알고리즘

백준 2204번 도비의 난독증 테스트 JAVA 구현해보기

kimc 2022. 6. 6. 11:53

```

백준 2204번 도비의 난독증 테스트 JAVA 구현해보기

```

이번 글을 통해 배워갈 내용

  1. 백준 2204번 풀이

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

 

2204번: 도비의 난독증 테스트

꿍은 도비에게 영어단어들을 제시한 후 어떤 단어가 대소문자를 구분하지 않고 사전순으로 가장 앞서는지 맞추면 양말을 주어 자유를 얻게해준다고 하였다. 하지만 인성이 좋지 않은 꿍은 사실

www.acmicpc.net

 

백준 2204번 도비의 난독증 테스트는

난이도 브론즈 등급의 문제로서

 

 

테스트 케이스마다

입력받은 각 단어를 알파벳 소문자로 표현할 경우

사전 순으로 가장 빠른 단어를 찾아주는 문제입니다.

 

 


30분 정도 위에 링크를 방문하셔서 풀어보시고

안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.


 

요즘 트렌드가 while문을 안 쓰고 일정량 이상 반복하면

알아서 종료하게 하는 게 많아서

for문을 썼고

 

알파벳 소문자를 비교해서 정렬한 다음

사전 순 정렬 후 제일 첫 단어를 출력했습니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;

public class Main {

    public static void main(String[] args) throws IOException {
        final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        final int MAX_TRY = 10000;
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < MAX_TRY; i++) {
            final int words = Integer.parseInt(br.readLine());

            if (words == 0) {
                break;
            }

            List<String> inputList = new ArrayList<>();
            for (int j = 0; j < words; j++) {
                inputList.add(br.readLine());
            }

            inputList.sort(Comparator.comparing(lhs -> lhs.toLowerCase(Locale.ROOT)));
            sb.append(inputList.stream().findFirst().get()).append("\n");
        }

        if (sb.length() > 0) {
            sb.setLength(sb.length() - 1);
        }
        System.out.print(sb);
    }
}

// https://codemasterkimc.tistory.com

 

 

읽어주셔서 감사합니다

 

무엇인가 얻어가셨기를 바라며

 

오늘도 즐거운 코딩 하시길 바랍니다 ~ :)

 


 

728x90