백준_실버5_1094번(막대기)

조건웅·2022년 11월 7일

문제 이해

문제링크

문제 해석

이번 문제는 64길이의 막대기를 나눠가면서 조건에 해당하는 막대기 길이까지 반복하는 문제이다. 기능 순서는 문제에서 제공하는 방법 그대로 적용하였고, Stack구조와 전체 합을 따로 생각하여 문제를 해결하였다.

코드

import java.util.Scanner;
import java.util.Stack;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int temp = sc.nextInt();
        Stack<Integer> stack = new Stack<>();
        stack.add(64);
        int all_sum = 64;
        while (all_sum > temp) {
            int last = stack.pop() / 2;
            stack.add(last);
            all_sum -= last;
            if (all_sum >= temp) {
                continue;
            } else {
                all_sum += last;
                stack.add(last);
            }

        }
        System.out.println(stack.size());
    }
}
profile
내게 남은 소중한 자식은 누군지 아나? 쑨양이다!

0개의 댓글