※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 26941번 문제인 Pyramidbygge이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/26941
26941번: Pyramidbygge
Indata består av ett enda heltal $N$ ($1 \le N \le 100\,000\,000$): antal tillgängliga block.
www.acmicpc.net
N개의 블록이 있을 때 지을 수 있는 가장 높은 (문제에 주어진 그림과 같은 형태의) 피라미드를 층수를 출력하는 문제이다.
반복문을 이용해 새로운 층을 추가할 수 있을 때까지 층을 쌓아보는 것으로 문제를 해결하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int N;
int k = 1;
int ans;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N;
while (N >= k * k) {
N -= k * k;
k += 2, ans++;;
}
cout << ans;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 13703 // C++] 물벼룩의 생존확률 (0) | 2022.12.29 |
---|---|
[BOJ 1380 // C++] 귀걸이 (0) | 2022.12.29 |
[BOJ 13702 // C++] 이상한 술집 (0) | 2022.12.28 |
[BOJ 13701 // C++] 중복 제거 (0) | 2022.12.27 |
[BOJ 24196 // C++] Gömda ord (0) | 2022.12.27 |