- 생각
1. stick의 초기 길이(64)에서 반씩 나누어주면서, 길이 X보다 더 작은 값이 나오면
X 값을 해당 숫자만큼 차감시키고, 차감 횟수를 센다.
2. X 값이 0이 나올때까지 진행한 뒤, 차감 횟수를 출력한다.
- 코드
정답 코드 : 위의 방법대로 짠 코드이다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
static int X, stick, answer;
public static void main(String[] args) throws Exception {
SetData();
getStick();
System.out.println(answer);
}
private static void SetData() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
X = Integer.parseInt(br.readLine());
stick = 64;
answer = 0;
}
public static void getStick() {
while (stick > 0) {
if (stick <= X) {
X -= stick;
answer++;
}
if (X == 0) {
break;
}
stick /= 2;
}
}
}
'algorithm' 카테고리의 다른 글
[JAVA] 백준 4796번 : 캠핑 (0) | 2020.12.02 |
---|---|
[JAVA] 백준 1292번 : 쉽게 푸는 문제 (0) | 2020.12.01 |
[JAVA] 백준 9020번 : 골드바흐의 추측 (0) | 2020.11.30 |
[JAVA] 백준 1978번 : 소수 찾기 (0) | 2020.11.30 |
[JAVA] 백준 1735번 : 분수 합 (0) | 2020.11.27 |