[백준] 1052 - 물병(Java)

2024. 12. 31. 11:34·Algorithm

문제 파악

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

 

어려운 점

정답이 없는 경우 -1을 리턴해야 하는데 이 부분을 신경 쓰느라 규칙을 잡는 중요한 부분을 놓친 게 아닌가 싶다.

... 사실 -1이 나올 일이 없다 😅

풀이

주어진 수들을 2진수로 변환하여 풀도록 한다.

높이가 1인 컵을 한 개씩 추가할 때 기존 물컵들이 결합하여 변화하는 양상은 이진수의 연산과 닮아있다.

이진수로 변환하게 되면 각 자리수의 1은 차 있는 물컵을 나타낸다

 

예를 들어 높이가 1인 컵의 개수가 5일 경우에 대해 규칙을 알아보도록 하자

5 = 101(2) 즉 2개의 컵이 남는다.
(높이가 1인 컵 1개, 4인 컵 1개가 남는 형태)

현 상태에서 1인 물컵을 더하게 되면 6 = 110(2)로 바뀐다.
(높이가 1인 컵 두개가 결합하여 ➡️ 높이가 2인 컵 1개, 4인 컵 1개가 남는 형태)

코드

import java.io.*;

public class N1052 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        String[] input = br.readLine().split(" ");
        int bottleCount = Integer.parseInt(input[0]);
        int filledBottleCount = Integer.parseInt(input[1]);
        int answer = 0;
        while (Integer.bitCount(bottleCount) > filledBottleCount) {
            bottleCount++;
            answer++;
        }
        bw.write(String.valueOf(answer));
        bw.flush();
        bw.close();
        br.close();
    }
}



저작자표시 비영리 변경금지 (새창열림)

'Algorithm' 카테고리의 다른 글

[백준] 1043 - 거짓말(Java)  (1) 2025.01.15
[백준] 1099 - 알 수 없는 문장(Java)  (0) 2025.01.11
[백준] 1041 - 주사위(Java)  (1) 2024.12.12
[프로그래머스] 12904 - 가장 긴 팰린드롬 (Java)  (0) 2024.10.07
[프로그래머스] 161988 - 연속 펄스 부분  (0) 2024.10.06
'Algorithm' 카테고리의 다른 글
  • [백준] 1043 - 거짓말(Java)
  • [백준] 1099 - 알 수 없는 문장(Java)
  • [백준] 1041 - 주사위(Java)
  • [프로그래머스] 12904 - 가장 긴 팰린드롬 (Java)
코드파고
코드파고
  • 코드파고
    Digging Code
    코드파고
  • 전체
    오늘
    어제
    • 분류 전체보기 (99)
      • Memorization (12)
      • Spring (18)
      • Java (1)
      • Algorithm (40)
      • Server (2)
      • DB (0)
      • CS (0)
      • CI & CD (4)
      • Architecture (0)
      • Design Patterns (0)
      • Study (1)
      • Book (9)
        • DEV (7)
        • Non-DEV (0)
      • Infra (1)
        • Kafka (6)
        • AWS (4)
      • TroubleShooting (1)
        • Etc (1)
      • Tools (0)
  • 블로그 메뉴

    • 홈
    • Github
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Spring독학
    SpringFramework
    헥사고날아키텍쳐
    Spring Boot
    architecture
    클린아키텍쳐
    clean architecture
    Clean Code
    Spring
    알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
코드파고
[백준] 1052 - 물병(Java)
상단으로

티스토리툴바