※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 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

+ Recent posts