Park DJ
dj0998
Park DJ
전체 방문자
오늘
어제
  • 분류 전체보기 (363)
    • 백준 (363)

공지사항

인기 글

태그

  • 백준 1531
  • 백준 10709
  • 백준 2467
  • 백준 1914
  • 백준 8892
  • 백준 16926
  • 백준 15655
  • 백준 16194
  • 백준 7662
  • 백준
  • 백준 3135
  • 백준 1064
  • 백준 4659
  • 백준 6550
  • 백준 2343
  • 백준 15961
  • 백준 1747
  • 백준 3049
  • 백준 12605
  • 백준 2225
  • 백준 14582
  • 백준 24039
  • Java
  • 백준 7567
  • 백준 15312
  • 백준 12871
  • 백준 1495
  • 자바
  • 백준 1011
  • 백준 2591
hELLO · Designed By 정상우.
Park DJ

dj0998

백준 1094 막대기(Java)
백준

백준 1094 막대기(Java)

2023. 1. 21. 02:41

https://www.acmicpc.net/problem/1094

 

1094번: 막대기

지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대

www.acmicpc.net


 

해석 및 팁

 


 

이문제는 길이가 x인 막대기를 만드는 것이 목적입니다. 따라서 처음에 64cm의 막대를 가지고 있을 때 그것이 x보다 크다면 반으로 나누어줍니다. 그리고 x보다 작아질 때까지 반으로 나누어주다가 x보다 작아지면 그것들을 모아 x를 만들어야 합니다. 따라서 조각이 만들어질 때마다 x에서 빼주어서 0이 되면 x만큼 만들어진 것이므로 출력해 주면 됩니다.

 


 

Java 코드

 


import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    StringBuilder sb = new StringBuilder();

    int x = sc.nextInt();
    int count = 0;
    int n = 64;
    
    while(x != 0) {          //x가 0이되면 종료
      if(n > x) n /= 2;      //막대길이가 x보다 크면 반으로 나눈다
      else {                 //x보다 작으면 합쳐서 x를 만들어야 하므로 그만큼 빼준다
        count++;
        x -= n;
      }
    }
    
    System.out.println(count);
  }
}

'백준' 카테고리의 다른 글

백준 1789 수들의 합(Java)  (1) 2023.01.21
백준 2563 색종이(Java)  (0) 2023.01.21
백준 1475 방 번호(Java)  (0) 2023.01.20
백준 1476 날짜 계산(Java)  (0) 2023.01.20
백준 1676 팩토리얼 0의 개수(Java)  (0) 2023.01.20
    '백준' 카테고리의 다른 글
    • 백준 1789 수들의 합(Java)
    • 백준 2563 색종이(Java)
    • 백준 1475 방 번호(Java)
    • 백준 1476 날짜 계산(Java)
    Park DJ
    Park DJ

    티스토리툴바