![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Zfdqk/btrWrIblfow/hge9PS9BmjCi7OZEV5URXk/img.png)
문제 링크 문제 풀이 과정 이 문제를 처음 접했을 때 어떤 접근 방식을 이용하여 풀어야할지 고민을 많이 했다. 결국은 이 문제의 답은 이진 탐색을 이용하는 것이다. 이진 탐색으로 바위 간격의 최소값을 mid 값으로 정해두고 해결하면된다. 바위의 간격은 항상 정렬 되어 있지 않으므로 정렬 한 뒤에 시작한다. 정렬하고 나면 바위의 간격은 {2, 9, 3, 3, 4, 4} 가 된다. 여기서 중간 값은 14가 된다. 첫번째 바위와 의 거리가 2이고, mid 값보다 작으므로 바위를 한개를 제거해준다. 그러면 바위의 간격이 11이 된다. 11은 mid 보다 작으므로 다음 바위도 제거해준다. 첫 바위와의 거리가 14가 되고, mid 보다 같으므로 다음 바위를 검사한다. 다음 바위와의 거리가 3이고, 더이상 제거할 바..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Qz67p/btrWuPAJUUu/x0yHzYnQQvvcaD8VPWnSf1/img.png)
문제링크 문제 풀이 방법 처음에 이 문제를 접했을 때는 이진 탐색으로 해결하려고 했다가 코드가 더 복잡해지고 시간 초과 될 것 같아서 다른 방법을 찾아야했다. 규칙을 찾으면 생각보다 쉽게 해결 되는 문제이다. 문제에 있는 예제로 설명을 하면, 우선 주어진 추들을 정렬을 해야한다. 1번추로 측정 할 수 있는 무게는 1이다. 2번째 추까지 이용하여 측정 가능한 무게는 2이다. 2번째까지 측정 가능한 무게는 2이며, + 1을 하면 3이다. 3은 3번째 추(2)보다 크므로 3은 측정이 가능하며, 3번째까지 측정 가능한 무게는 4가 된다. 4번째 추를 이용하여 측정 가능한 무게는 7이다. 5번째 추를 이용하여 측정 가능한 무게는 13이다. 6번째 추를 이용하여 측정 가능한 무게는 20이다. 여기서 20 + 1을 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bsOOiV/btrV0F6IvOj/5He8L1xq6slyQq97PjNby1/img.png)
문제링크 문제 풀이 과정 스트림과 람다식으로 간단하게 코드를 작성 할 수 있었다. 코드 실행 시에 11번 케이스만 오류가 나고 나머지는 모두 통과가 되었다. 반례를 생각해보니 0,0,0,0,0 일때는 0이 return 이 되어야 한다는 점이다. 문자열이기때문에 0,0,0,0,0 일때 00000이 나온다. 이것을 해결하기 위해서 코드 초반 부분에 배열의 전체 합을 구한 다음 합이 0일 때는 return 0으로 하는 것으로 해결이 되었다. int sum = Arrays.stream(numbers).sum(); if(sum == 0){ return "0"; } 전체 코드
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dIyU2J/btrSyhPKwcd/UMzbjb646Z1F1hC1veG7UK/img.png)
문제링크 문제 설명 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다. 구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 합니다. 사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가 매개변수로 주어질 때, 모든 사람을 구출하기 위해 필요한 구명보트 개수의 최솟값을 return 하도록 solution 함수를 작..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Q5d0C/btrRMZQwDZ0/q8tqNU0lNEXJiO1xdOyvo0/img.png)
문제 링크 문제 설명 햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상수가 일하는 가게는 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장을 합니다. 상수는 손이 굉장히 빠르기 때문에 상수가 포장하는 동안 속 재료가 추가적으로 들어오는 일은 없으며, 재료의 높이는 무시하여 재료가 높이 쌓여서 일이 힘들어지는 경우는 없습니다. 예를 들어, 상수의 앞에 쌓이는 재료의 순서가 [야채, 빵, 빵, 야채, 고기, 빵, 야채, 고기, 빵]일 때, 상수는 여섯 번째 재료가 ..
- Total
- Today
- Yesterday
- 제로베이스 백준 장학금
- 취준
- 코테준비
- java
- 제로베이스 백엔드 스쿨
- 코딩테스트 공부
- 알고리즘공부
- 백엔드 개발자
- 코테공부
- 취업준비
- 백엔드 개발자 기술 면접 준비
- 취업 준비
- 개발자 취준
- 알고리즘
- 프로그래머스 카카오
- 코딩테스트 준비
- 코테 준비
- 알고리즘 공부
- 프로그래머스 자바
- 백준
- 개발자 취업 준비
- 코딩테스트공부
- 프로그래머스
- 개발자 면접 준비
- 자바
- 코딩테스트
- 기술 면접 준비
- 주니어 개발자 취업 준비
- 자바공부
- 백엔드 개발자 취업 준비
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |