반응형
🔺 문제
2885번: 초콜릿 식사
학교 근처 편의점에 새 초콜릿이 들어왔다. 이 초콜릿은 막대 모양이고, 각 막대는 정사각형 N개로 이루어져 있다. 초콜릿의 크기(정사각형의 개수)는 항상 2의 제곱 형태이다. 즉, 1, 2, 4, 8, 16, ...
www.acmicpc.net
🔺 코드
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
|
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int K = Integer.parseInt(br.readLine());
int size = 1; // 사야하는 가장 작은 초콜릿 크기
int cnt = 0; // 최소 몇 번 초콜릿 쪼개야 하는지
// 1) size 구하기
while(size < K) size *= 2;
System.out.print(size + " ");
// 2) cnt 구하기
while(K > 0) {
if(K >= size) {
K -= size; // 주어진 초콜릿 크기를 size만큼 빼서 초콜릿 쪼갬
}
else {
size /= 2;
cnt++;
}
}
System.out.print(cnt + "\n");
}
}
|
cs |
✅ 해결 아이디어
✔ 그리디
1) 사야하는 가장 작은 초콜릿 크기
- size가 K보다 크거나 같기 전까지 2를 곱함
2) 최소 몇 번 초콜릿 쪼개야 하는지
- 초콜릿 크기가 K보다 크다면, 반으로 쪼개고 cnt를 1씩 더함
- K가 0보다 작아지면 반복문 종료
🔺 다른 풀이들
- 다들 비슷하심
💬 느낀 점
size 구하는 건 잘 구했는데
cnt 구하는 부분에서 헷갈려서 풀이 참고해서 작성했다.
담엔 cnt까지 완벽하게 구하는걸로,,!
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
[그리디] 백준 2885번 초콜릿 식사(Java)
https://www.acmicpc.net/problem/2885 2885번: 초콜릿 식사 학교 근처 편의점에 새 초콜릿이 들어왔다. 이 초콜릿은 막대 모양이고, 각 막대는 정사각형 N개로 이루어져 있다. 초콜릿의 크기(정사각형의 개
141227.tistory.com
[python] 백준 2885번 : 초콜릿 식사
https://www.acmicpc.net/problem/2885 2885번: 초콜릿 식사 학교 근처 편의점에 새 초콜릿이 들어왔다. 이 초콜릿은 막대 모양이고, 각 막대는 정사각형 N개로 이루어져 있다. 초콜릿의 크기(정사각형의 개
dogsavestheworld.tistory.com
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 9663번: N-Queen (0) | 2023.08.22 |
---|---|
[백준/JAVA] 1759번: 암호 만들기 (0) | 2023.08.22 |
[백준/JAVA] 15686번: 치킨 배달 (0) | 2023.08.21 |
[백준/JAVA] 10867번: 중복 빼고 정렬하기 (0) | 2023.08.20 |
[백준/JAVA] 10826번: 피보나치 수 4 (0) | 2023.08.19 |