자료구조와 알고리듬 With Java/[프로그래머스] KDC

[1주차] Coding Test 그리디/ 정렬/ 이분탐색/ 시뮬레이션

계란💕 2022. 4. 20. 10:21

1. 기지국 설치 

https://programmers.co.kr/learn/courses/30/lessons/12979

  Sol 1) 기본형 이용- 정확성: 0.02ms, 효율성: 1.19ms

java
열기

  - 그리디(greedy) 알고리즘을 이용한다.

  - 루프는 효율성 테스트에서 시간을 많이 잡아 먹는다. 

  - primitive 타입을 사용하는 게 Objects타입( ex) stack, queue ) 사용 보다 빠르다.

  - 그런데 while문에  등호가 빠지면 점수가 깎인다..

 

  

 

  Sol 2) Queue 이용 - 정확성:  , 효율성: 

 

  Sol 3) 제출 답안

java
열기

 

 

2. 가장 큰 수

  Sol) 

  - 배열

  - 숫자로 생각해서 풀지 않고 문자열을 다룬다 생각하고 푼다. 

  - 숫자 -> 문자 -> 내림차순 정렬 -> 조합

  - 정확성 테스트에서 시간 초과되는 경우: 무한 루프가 돌거나 연산이 느린 경우

  - 간결한 버전

java
열기
java
열기

  - 참고

java
열기

 

 

3. 예산

  Sol)

  - 이분법을 이용하기 위해 최솟값, 최댓값을 구한다. 

  - Stream을 이용하면 간결하게 표현 가능하다.

  - final을 붙여야 효율성 테스트를 통과한다.

java
열기
java
열기

 

 

4. 숫자 게임

  Sol)

  - 루프를 거꾸로 돌면서 서로 가장 큰 값을 비교한다.

  - 단일 루트로 풀면 효율성 테스트 통과

  - A와 B를 먼저 정렬시킨 다음에 A와 B에 인덱스를 다르게 준다. 

  - A[i] < B[index] 를 만족하면 index를 마이너스하고 answer을 플러스한다.  

java
열기

 

출처: https://programmers.co.kr/learn/courses/13699