[백준] 2789 - DOM



문제 정보


  • 문제 이름: DOM (원문)
  • 문제 번호: 2789
  • 문제 유형: 알고리즘 - 문자열 처리
  • 풀이 언어: Java
  • 제출 시간: 2019년 5월 2일 22시 31분 22초
  • 원본 링크: https://www.acmicpc.net/problem/2789



문제

In a small country far, far away, all the best and brightest high schoolers apply to universities abroad (even further away). The exact cause is always different and hard to find. Of course, the country’s leaders aren’t happy about that since they care deeply about their gifted (read profitable) youth.

That’s why the Education Ministry has started research into various subliminal messages to coax high schoolers into staying in their homeland. Their first try was handing out booster packs for the recent Magic: The Gathering expansion known as Return to Ravnica as competition prizes. Then they started to play Tony Cetinski’s song “Ostani zauvijek” on math radio all the time. Finally, there is this task!

Given a word, remove from it all letters contained in the word CAMBRIDGE.



입력

The first and only line of input contains a single word consisting of at least 3 and at most 100 uppercase English letters.



출력

The first and only line of output should contain the word obtained by removing all the letters in CAMBRIDGE from the given word. Test data will ensure that the solution contains at least one letter.



결과 - 소스코드 및 랭크





메모

지금 안드로이드 앱을 만들고 있기는 하지만 Java도 C와 마찬가지로 순수 학문(?)으로는 오랜만에 하는 것이기 때문에 쉬운 문제를 골라 객체지향으로 설계해보았다.

학교에서 Java를 배울 때 Scanner를 많이 써서 그런지 입력을 받을 때 자주 쓰곤 했는데 일반적으로 BufferedReader를 많이 쓰시는 것 같아 왜 그런지 그 이유를 찾아보게 되었다.

찾아보니 BufferedReader는 InputStreamReader에 버퍼링 기능을 추가한 것으로, 데이터를 일정한 사이즈로 한번에 읽어온 후 버퍼에 보관하고 사용자가 요청할 때마다 불러올 수 있도록 하는 기능을 제공한다고 한다.

하나만 선언해도 되는 Scanner와 달리 BufferedReader는 InputStreamReader를 동시에 선언해야 사용할 수 있고 에러 방지를 위해 예외처리를 해줘야한다는 불편함이 있지만 대량의 데이터를 처리하는 속도면에서는 5~6배 정도로 우수하다고 한다.

이는 1,024 Char 크기의 버퍼를 가진 Scanner와 8,192 Char 크기의 버퍼를 가진 BufferedReader를 이용하여 실제로 코딩 시간을 비교해보면서 확인할 수 있을 것 같다. 앞으로 Scanner 대신에 습관적으로 BufferedReader를 사용하는 쪽으로 하는 것이 여러 방면으로 효율적일 것 같다.

Author

Alec J

Posted on

2019-05-02

Updated on

2021-02-09

Licensed under