문제
https://www.acmicpc.net/problem/2292
2292번: 벌집
위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌
www.acmicpc.net
주안점
1. 입력을 잘 보면 범위가 크므로 절대 배열을 사용하여 할당을 한 후에 해당 값을 찾으려 하면 안된다. => 수학적으로 해결
2. N이 1인경우 처리
구조
각 껍질(?)의 가장 큰 수는 6의 배수로 증가한다.
코드
#include<bits/stdc++.h>
using namespace std;
long long n;
long long ret = 1;
long long num = 1;
int main (){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin>>n;
if(n == 1) {
cout<<ret<<"\n";
return 0;
}
while(num < n) {
if(num == n) break;
num += ret*6;
++ret;
}
cout<<ret<<"\n";
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1717번 : 집합의 표현 (0) | 2021.12.22 |
---|---|
[백준] 14716번 : 현수막 (0) | 2021.12.15 |
[백준] 2636번 : 치즈 (0) | 2021.11.09 |
[백준] 회의실 배정 (0) | 2021.11.04 |
[백준] 부녀회장이 될테야 (0) | 2021.11.03 |