상세 컨텐츠

본문 제목

숫자카드 2 Tip

Algorithm

by choiDev 2020. 10. 27. 02:23

본문

1. HashMap or TreeMap으로 구현 시 시간 초과 됩니다.
   백준 알고리즘 분류에 Map등의 자료구조라고 써있다고 해서 현혹되시면 안됩니다

2. 정렬을 Arrays.sort()가 아닌 (병합 or 퀵) 등을 사용해보세요
   -계수 정렬은 아직 배우지도 않았고 음수를 정렬할수 없어서 안쓰는걸 추천합니다.

3. 입력할땐 Scanner 놉! BuffredReader를 사용하세요
   - Scanner 를 사용해 입력 시 입력 발생 횟수는? -> 글자수 만큼 발생
     BufferedReader를 사용해 입력 시 입력 발생 횟수는? -> 버퍼에 쌓아놓고 입력이 발생해서 1회
   
4. 출력시도 마찬가지 Buffer에 쌓아놓고 출력하세요.
  - 결과를 도출했을때 System.out.println() 하지 말고,
    StringBuffer로 결과를 append해서 마지막에 1회만 출력하세요.

5. 이진탐색을 2가지 만드세요
  - 원래 이진탐색은 중복되지 않은 값들을 가지고 진행합니다.
  - 중복된 값들을 이진탐색해서 몇개인지 구하려면
    lowBound, upperBound 형태로 두가지 이진탐색을 만드셔야합니다.


6. 이진 탐색이 아닌 단순히 배열을 빵빵하게 선언하는걸로 푸는방법도 있습니다. (저희 이진탐색중이니 비추)
   아래 블로그에 들어가셔서 가장 하단에 있는 코드가 설명드린 코드입니다.
   URL : mslim8803.tistory.com/12

 

백준(BOJ) 10816 : 숫자 카드 2 (JAVA)

문제링크 : https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이가 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어..

mslim8803.tistory.com

 

관련글 더보기