백준 알고리즘
<백준 알고리즘> 2622번: 삼각형만들기
우현짱짱
2020. 12. 22. 00:51
문제
같은 길이의 성냥개비가 여러 개 주어져 있다. 이것들을 평면에 늘어놓아서 삼각형을 만들려고 한다. 삼각형의 한 변은 여러 개의 성냥개비를 직선으로 이어서 만들 수 있지만, 성냥개비를 꺾거나 잘라서 변의 한 부분을 만들 수는 없다. 성냥개비의 개수가 주어졌을 때, 이들 성냥개비를 사용하여 만들 수 있든 서로 다른 삼각형의 개수를 구하는 프로그램을 작성하시오.
예를 들어서 9개의 성냥개비로 만들 수 있는 서로 다른 삼각형은 그림 1과 같이 3가지이다.
<주의사항>
- 주어진 성냥개비는 모두 사용하여 하나의 삼각형을 만들어야 한다.
- 삼각형을 한 개도 만들 수 없으면 0을 출력한다. 예를 들어서, 주어진 성냥개비의 수가 1, 2, 또는 4인 경우에는 삼각형을 한 개도 만들 수 없다.
- 합동인 삼각형들은 같은 삼각형으로 본다. 예를 들어서 성냥개비 5개를 사용하여 만들수 있는 그림 2의 삼각형들은 같은 삼각형으로 본다.
입력
첫째 줄에 성냥개비의 개수가 주어진다. 성냥개비의 개수는 1 이상 50,000 이하이다.
출력
첫째 줄에 만들 수 있는 삼각형의 개수를 출력한다.
예제 입력 1
9 |
예제 출력 1
3 |
더보기
Solution
#include<stdio.h>
int main(void)
{
int N, count=0;
scanf("%d", &N);
for(int i=1;i*3<=N;i++)
for(int j=i;i+2*j<=N;j++)
count+=2*(i+j)>N;
printf("%d\n", count);
return 0;
}
728x90