Java/Java 알고리즘

백준 9536번 여우는 어떻게 울지? JAVA 구현해보기

kimc 2022. 5. 14. 00:17

```

백준 9536번 여우는 어떻게 울지? JAVA 구현해보기

```

이번 글을 통해 배워갈 내용

  1. 백준 9536번 풀이

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

 

9536번: 여우는 어떻게 울지?

각 테스트케이스마다 여우의 울음소리를 한 줄씩, 녹음된 순서대로 출력한다. 여우의 울음소리가 녹음되어 있음이 보장된다. (알려진 것과는 달리, 여우는 모스 부호로 의사소통하지 않는다.)

www.acmicpc.net

 

백준 9536번 여우는 어떻게 울지? 는

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

 

숲 속 전체의 동물들의 소리가 주어지고

각 동물들의 울음소리가 주어질 때

각 동물들의 울음소리를 제외한 여우의 울음소리만 추출해내면 되는 문제입니다.

 


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

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


테스트 케이스만큼

숲 속 동물들의 울음소리를 입력받고

각 동물들의 울음소리를 추출해서

여우 울음소리만 출력하였습니다.

 

String List를 활용해서 immutable 한 String의 처리 속도를 최적화하였습니다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    // BufferedReader Object 생성
    static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    public static void main(String[] args) throws IOException {

        final int MAX_ANIMAL_CNT = 100;
        final int testCase = Integer.parseInt(br.readLine());

        // 입력 및 필터
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < testCase; i++) {
            List<String> foxCryList = Arrays.stream(br.readLine().split(" ")).collect(Collectors.toList());

            for (int j = 0; j < MAX_ANIMAL_CNT; j++) {
                final String inputStr = br.readLine();
                if (inputStr.equals("what does the fox say?")) {
                    break;
                }
                String animalCry = inputStr.split(" ")[2];
                foxCryList = foxCryList.stream().filter(cry -> !cry.equals(animalCry)).collect(Collectors.toList());
            }
            foxCryList.stream().forEach(str -> sb.append(str).append(" "));
            sb.setLength(sb.length() - 1);
            sb.append("\n");
        }
        // 출력
        sb.setLength(sb.length() - 1);
        System.out.print(sb);
    }
}
//codemasterkimc.tistory.com [김씨의 코딩 스토리]

 

 

읽어주셔서 감사합니다

 

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

 

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

 


 

728x90