소감 2 ¶
통과O
- 숫자 하나하나를 일일이 나눠보는건 시간이 많이 걸린다. 그래서 다른 방식으로 접근.
- STL사용하니 한결 간편하다
- 답은 The 1500'th ugly number is <숫자>. 형식이어야 한다.
소스 2 ¶
~cpp //136 #include <iostream> #include <list> using namespace std; void main() { int cnt = 1500; list<unsigned int> numbers; numbers.push_back(1); unsigned int temp; while (cnt) { temp = numbers.front(); numbers.pop_front(); cnt--; numbers.push_back(temp * 2); numbers.push_back(temp * 3); numbers.push_back(temp * 5); numbers.sort(); numbers.unique(); } cout << "The 1500'th ugly number is " << temp << "." << endl; }
소감 1 ¶
통과X
1500번째 구하는데 2분정도 걸린다 ㅡ.ㅡ
생각보다 오래걸리는 이유가 뭐지...
1500번째 구하는데 2분정도 걸린다 ㅡ.ㅡ
생각보다 오래걸리는 이유가 뭐지...
소스 1 ¶
~cpp #include <iostream> using namespace std; void main() { int cnt; cin >> cnt; int num = 1, temp; cnt--; while (cnt) { num++; temp = num; while (temp % 2 == 0) temp = temp / 2; while (temp % 3 == 0) temp = temp / 3; while (temp % 5 == 0) temp = temp / 5; if (temp == 1) cnt--; } cout << num << endl; }