<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=UglyNumbers%2F1002</id>
	<title>UglyNumbers/1002 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=UglyNumbers%2F1002"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=UglyNumbers/1002&amp;action=history"/>
	<updated>2026-05-14T20:21:26Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=UglyNumbers/1002&amp;diff=39910&amp;oldid=prev</id>
		<title>imported&gt;DamienRice at 04:58, 29 September 2008</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=UglyNumbers/1002&amp;diff=39910&amp;oldid=prev"/>
		<updated>2008-09-29T04:58:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== 접근 ===&lt;br /&gt;
처음 문제를 제대로 이해하지 않고 &amp;#039;그냥 2,3,5 외의 소수 제외한것 아닌가?&amp;#039; 로 접근하다가 14 는 아니라는 것을 간과. 다시 처음부터 접근.&lt;br /&gt;
&lt;br /&gt;
연습장에 이것저것 써보다가 대략 두가지 접근법이 생각나다. 하나는 각 수들마다 &amp;#039;isUglyNumber&amp;#039; , 하나는 지수를 이용한 방법. 일단은 &amp;#039;isUglyNumber&amp;#039; 먼저 구현해보기로 해봄. (워낙 간단하므로) &lt;br /&gt;
&lt;br /&gt;
 def isDivideOnly235(number):&lt;br /&gt;
     while True:&lt;br /&gt;
         if number == 1: return True&lt;br /&gt;
         if number % 2 != 0 and number % 3 !=0 and number % 5 != 0: return False&lt;br /&gt;
         number = toDivide(number)&lt;br /&gt;
 &lt;br /&gt;
 def toDivide(number):&lt;br /&gt;
     for x in [2,3,5]:&lt;br /&gt;
         if number % x == 0: number=number/x&lt;br /&gt;
     return number&lt;br /&gt;
 &lt;br /&gt;
 def uglyNumber(count):&lt;br /&gt;
     if count == 1: return 1&lt;br /&gt;
     idx = 2&lt;br /&gt;
     currentCount = 2&lt;br /&gt;
     while True:&lt;br /&gt;
         if isDivideOnly235(idx):&lt;br /&gt;
             print idx,currentCount&lt;br /&gt;
             if currentCount == count:&lt;br /&gt;
                 return idx&lt;br /&gt;
             currentCount += 1&lt;br /&gt;
         idx+=1&lt;br /&gt;
&lt;br /&gt;
하지만, 결과값을 보면서 지수 스타일의 접근법이 원하는 접근법이라는 생각을 하게 되다. (10억이 넘는다 할때, isUglyNumber 식이라면 10억번이 실행된다.) 하지만, 그냥 지수로만 생각하면 uglynumber 의 순서 상 맞지 않을 것인지라 (1 : 2^0*3^0*5^0, 2 : 2^1*3^0*5^0, 3 : 2^0*3^1*5^0, 4 : 2^2*3^0*5^0 ... 0,0,0 ,  1,0,0, 0,1,0 , 2,0,0 .. 도무지 숫자들 간의 연관성이 잡히지 않았다.&lt;br /&gt;
&lt;br /&gt;
그러다가, &amp;#039;에이.. 걍 sort 해버리자.&amp;#039; 접근. 하지만, n 값에 따라 결과가 영향을 받을 것이라는 막연한 생각에 연습장에서 한참 고민. 그냥 실제 원하는 값 보다 여유분 값을 만들고 적당히 답을 내는 방식으로 접근. 하지만, 무언가 굉장히 찝찝함.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[UglyNumbers/JuNe]] 코드 분석. 2시간 동안 보다가 도무지 접근법을 이해 못하다. 한 3시간째쯤 보다가 http://www.acmsolver.org/?itemid=28#ggviewer-offsite-nav-9512048 보고 이해 &amp;amp; 좌절. &lt;br /&gt;
나중에 어떤 생각을 하면 저 방법이 떠오를까에 대해 고민. &lt;br /&gt;
--&amp;amp;#91;1002&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* 동감. DamienRice 20080929&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;DamienRice</name></author>
	</entry>
</feed>