반응형
DoZZang
Do IT
DoZZang
전체 방문자
오늘
어제
  • Programming
    • Git
    • Web
    • 기타
    • Python
      • CodeUp
    • Math
    • Algorithm
    • Baekjoon
    • C,C++
    • Life
      • 독서
      • Just
      • 영화

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
DoZZang

Do IT

[C] 백준 2292번 : 벌집
Baekjoon

[C] 백준 2292번 : 벌집

2023. 1. 18. 21:37
반응형

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

 

2292번: 벌집

위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌

www.acmicpc.net

 

 

코드

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
    int n, var = 1, count = 1;
    scanf("%d", &n);

    while(1) {
        if (n <= var) { printf("%d", count); break; }
        var += (6 * count);
        count++;
    }
    return 0;
}

처음 봤을 때 감이 안잡혔던 문제였다. 정답률에 쫀 것도 있다. 문제에 절대 쫄지말자.

n^2? 6n? 규칙을 찾아보려 해도 잘 보이지 않아 벌집 자체를 파헤쳐보았다.

1번루프/2번루프/3번루프/4번루프 · · ·

2~7  /  8 ~ 19 / 20 ~ 37 / 38~61 · · ·

여기서 숫자의 개수에 규칙이 숨어있는데

루프마다 6 x 1 / 6 x 2 / 6 x 3 / 6 x 4 · · · 

즉 6n만큼 증가한다.

 

두 번째로 최단거리를 구하는 것인데

알고보면 각각의 루프에 해당하는 수에 도달하는데의 최단거리는

반드시

루프의 번호 + 1에 해당한다.

사실 첫 번째 규칙은 찾았는데 이 규칙을 못찾아서 헤맸다.

문제에 쫄아서 너무 어렵게 생각했다..

반응형
저작자표시 (새창열림)

'Baekjoon' 카테고리의 다른 글

[C]백준 2869번 : 달팽이는 올라가고 싶다  (0) 2023.01.19
[C] 백준 1193번 : 분수찾기  (0) 2023.01.19
[C] 백준 1712번 : 손익분기점  (0) 2023.01.18
[C] 백준 2675번 : 문자열 반복  (0) 2023.01.15
[C] 백준 10809번 : 알파벳 찾기  (0) 2023.01.15
    'Baekjoon' 카테고리의 다른 글
    • [C]백준 2869번 : 달팽이는 올라가고 싶다
    • [C] 백준 1193번 : 분수찾기
    • [C] 백준 1712번 : 손익분기점
    • [C] 백준 2675번 : 문자열 반복
    DoZZang
    DoZZang
    과정은 힘들지만 성장은 즐겁습니다.

    티스토리툴바