[백준 / BOJ] 2292번 벌집 (C++, Python)◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 1. 18. 10:14
Table of Contents
반응형
링크 : https://www.acmicpc.net/problem/2292
문제
문제 풀이
가장 중앙 방, 즉 1번 레이어는 1, 2번 레이어부터 2~7, 3번 레이어는 8~19, 4번 레이어는 20~36..
즉 6, 12, 18, 24의 등비수열대로 늘어나는 패턴을 확인할 수 있다. 이를 활용해 등비수열의 합을 구하고 늘어난 레이어를 출력해주면 된다.
C++ 상세 풀이
더보기
void solution(int N) {
int cnt = 1;
int layer = 1;
while (N > cnt) {
cnt += 6 * layer;
layer++;
}
cout << layer;
}
위에서 cnt는 방 갯수를 세기 위한 변수이고, layer은 층을 세기 위한 변수이다. 즉, 결국 layer을 출력해야 한다.
일단 둘 다 1로 초기화한 후, 입력받은 N이 cnt보다 클 동안 등비수열을 이용해 layer을 점점 증가시켜 주어 어느 층인지 판별한다.
Python 상세 풀이
더보기
N = int(input())
cnt = 1
layer = 1
while N > cnt :
cnt += 6 * layer
layer += 1
print(layer)
위에서 cnt는 방 갯수를 세기 위한 변수이고, layer은 층을 세기 위한 변수이다. 즉, 결국 layer을 출력해야 한다.
일단 둘 다 1로 초기화한 후, 입력받은 N이 cnt보다 클 동안 등비수열을 이용해 layer을 점점 증가시켜 주어 어느 층인지 판별한다.
C++ 코드 전문
Python 코드 전문
소감
반응형
'◎ 자료구조와 알고리즘 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[백준 / BOJ] 2869번 달팽이는 올라가고 싶다 (C++, Python) (0) | 2022.02.01 |
---|---|
[백준 / BOJ] 1193번 분수찾기 (C++, Python) (0) | 2022.02.01 |
[백준 / BOJ] 1712번 손익분기점 (C++, Python) (0) | 2022.01.18 |
[백준 / BOJ] 1316번 그룹 단어 체커 (C++, Python) (0) | 2022.01.17 |
[백준 / BOJ] 2941번 크로아티아 알파벳 (C++, Python) (0) | 2022.01.17 |
@Reo :: 코드 아카이브
자기계발 블로그