728x90
반응형

문제

17283번 : I am Groot

 

17283번: I am Groot

첫 번째 줄에 중심 줄기를 제외한 나뭇가지의 총 길이의 합을 cm단위로 출력하며, 소숫점 이하는 버린다. 총 길이의 합이 106보다 작거나 같은 입력만 주어진다.

www.acmicpc.net

 

내가 작성한 코드 (C++ 성공)

#include <iostream>

using namespace std;

int main(){
	cin.tie(0);
	int l, r;
	cin >> l >> r;
	
	int n=l, sum=0, t=2;
	
	while(true){
		n*=(double)r/100;
		if(n<=5) break;
		sum+=t*n;
		t*=2;
	}	
	cout << sum << "\n";
	
	return 0;
}

 

정리

이 문제는 정말 간단한 수학 문제였다.
이런 문제를 내가 다이나믹 프로그래밍 알고리즘을 이용해서 풀고 있는 것을 보고나서
내가 문제를 정말 어렵게 보고 풀고 있구나 하는 생각이 들었다.
물론 동적계획법으로 풀어도 되는 문제다. 하지만 굳이 쓰지 않아도 계산으로만 풀 수 있는 문제였기 때문에
문제를 볼 때 다양한 관점에서 보는 연습이 필요한 것 같다.

그리고 유의해야할 점은 어떤 변수를 사용해서 계산해야 하는지에 대한 것이다.
비율을 계산할 때에는 소수점을 출력해야하기 때문에 double형으로 해주었다.

728x90
반응형
복사했습니다!