[백준] 2292번: 벌집 - JAVA

2024. 9. 18. 02:56·알고리즘

[작성일: 2023. 09. 21]

 

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

 

 

풀이

import java.util.Scanner;

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

        int num = sc.nextInt();
        int honey = 1;  // 현재 범위의 마지막 방(1, 7, 19 ...)
        int count = 1;  // 방 카운트
        int increase = 6;  // 지나야 하는 방의 수(6의 배수)

        while (num > honey) {
            honey += increase;
            increase += 6;
            count++;
        }

        System.out.println(count);
    }
}

 

이 문제를 패턴을 찾는 것이 중요하다.

 

1 : 1번 (1개)

2 ~ 7 : 2번 (6개)

8 ~19 : 3번(12개)

20 ~ 37 : 4번(18개)

38 ~ 61 : 5번(24개)

...

 

각 층마다 지나가야 하는 방의 수는 6의 배수로 증가하고 있는 것을 알 수 있다.

 

현재 범위의 마지막 방(1, 7, 19, 37, 61...등), 출력할 방 카운트, 지나야 하는 방의 수(6의 배수)가 필요하다.

입력받은 num이 honey보다 크다면 if문이 실행될텐데, 

 

honey는 increase를 누적할 것이다. 그 밑에서 increase를 6씩 계속 누적해주고 있기 때문에 honey는 6, 12, 18 이런 식으로 누적된다.

if문이 돌 때마다 count가 증가하기 때문에 count로 몇 번의 방을 지나야하는지 알 수 있다.

 

저작자표시 비영리 변경금지 (새창열림)
'알고리즘' 카테고리의 다른 글
  • [백준] 2869번: 달팽이는 올라가고 싶다 - JAVA
  • [백준] 1193번: 분수찾기 - JAVA
  • [백준] 2903번: 중앙 이동 알고리즘 - JAVA
  • [백준] 11005번: 진법 변환2 - JAVA
뚜비
뚜비
1년차 백엔드&iOS 개발자의 감자 탈출 블로그 🥔🥔
  • 뚜비
    뚜비의 개발로그
    뚜비
  • 전체
    오늘
    어제
  • 글쓰기     관리
    • Devlog
      • Back-End
        • Java
        • Spring
        • JPA
        • HTTP
        • Security
        • Back-End
        • Front-End
      • 알고리즘
      • iOS
        • Swift
      • Database
      • Tips
        • Git & GitHub
        • A to Z
      • 프로젝트
      • 생각정리
  • 태그

    sql
    김영한
    Swift
    DB
    게시판만들기
    html
    백준
    알고리즘
    자바스크립트
    변수
    최주호
    spring
    Security
    성능최적화
    MVC
    Spring Security
    JPA
    생성자
    자바
    의존성주입
    프로그래머스
    다형성
    데이터베이스
    HTTP
    javascript
    스프링
    Database
    Java
    객체
    jsp
  • hELLO· Designed By정상우.v4.10.0
뚜비
[백준] 2292번: 벌집 - JAVA
상단으로

티스토리툴바