백준 2292벌집 : https://www.acmicpc.net/problem/2292
2292번: 벌집
위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌
www.acmicpc.net
#include<iostream>
using namespace std;
int main() {
int inp = 0;
cin >> inp;
int a = 1;
int answer = 0;
int b = 2;
if (inp == 1) {
cout << 1;
answer = 1;
}
else {
for (int i = 2; i <= 100000000; i++) { //조건보고 범위 잘 정하기!!
//cout << "b " << b << " , " << "a " << 6 * a + 1 << endl;
if (b<= inp <= 6 * a + 1) {
//cout << "i " << i << endl;
answer = i;
}
if (6*a+1 >= inp) {
break;
}
b = (6 * a) + 2;
a = a + i;
}
cout << answer;
}
}
벌집 모양이
1
2~7
8 ~ 19
20 ~ 37
38 ~ 61
이런식으로 진행된다.
(입력이 1일경우) 1출력하고 바로 끝내기
(입력이 2 이상일 경우)
끝에 끝나는 숫자만 패턴을 찾고, 그 숫자를 a라하면
직전 a에 +1 한것과 a사이일 경우에 answer++ 해주고 멈추면서
answer을 출력해준다.
i의 범위를 입력조건과 맞지않게 해줘서 계속 틀렸다고 나왔었음!!
조건 잘 보고 코드 작성하기 ★
'자기개발👨💻 > 코딩 알고리즘' 카테고리의 다른 글
[Python] 백준 13458 시험 감독 (2) | 2023.11.10 |
---|---|
[C++] 백준 2178 미로탐색-dfs알고리즘-최단경로 (0) | 2023.11.04 |
c++ 입출력 속도 향상 및 cin.tie 해야하는이유 (0) | 2023.11.03 |
[C++] 백준 14567 선수과목 (설명 작성중~) (0) | 2023.11.02 |
[C++] 백준 2056 작업 (0) | 2023.11.02 |
[Python] 백준 2559 수열 - 그리디 알고리즘 (0) | 2023.10.24 |