== í’€ì´+잡담 == í¬ê²½ ì˜¤ë¹ ê°€ 쉬울거ë¼ê³ 한 ë§ë§Œ 믿다가 í”¼í† í–ˆìŠµë‹ˆë‹¤. (워낙 ì´ëŸ° ë¬¸ì œí’€ê¸°ì— ì•½í•´ì„œ..) 게다가 처ìŒì—는 ì•Œê³ ë¦¬ì¦˜ì„ ìž˜ëª» ì´í•´í•´ì„œ ì™„ì „ 잘못짜는 바람ì—.. 갈아 ì—Žì–´ë²„ë ¸ì–´ìš”=_= 어떻게 ì°Œë„ë ¤ì¤˜ì•¼í• ê¹Œ ê³ ë¯¼í•´ë´¤ëŠ”ë°.. ë°°ì—´ì— 2,3,5 ì¸ìˆ˜ë¡œ ì´ë£¨ì–´ì§„ 수를 하나씩 ë•Œë ¤ë„£ì–´ sort를 í• ê¹Œ 하다가 1500개짜리 ë°°ì—´ì„ ë§¤ë²ˆ sort해줄 수가 없으니ㅡㅡ;; 기존 ugly numberì—다가 2,3,5를 ê³±í•´ë„ ugly numberê°€ ë 것ì´ë‹ˆ 그걸 비êµí•´ê°€ë©´ì„œ ë°°ì—´ì— ì§‘ì–´ë„£ì–´ë³´ìž ì‹ìœ¼ë¡œ ë„ì „í–ˆìŠµë‹ˆë‹¤. 와 ë¹ ë¥´ë„¤ ì •ëª¨ 때 설명부íƒí•´ìš”.ã…Žã…Ž --[ê°•í¬ê²½] == 소스 == {{{ #include <iostream> using namespace std; const int MAX = 1500; int uglyNum(int); void main(){ int num; cin >> num; cout << "The " << num << "th ugly number is " << uglyNum(num) << endl; } int uglyNum(int num){ int ugly[MAX]; int n2, n3, n5; // ugly numberì— 2,3,5를 곱한 ê°’ int i2, i3, i5; ugly[0] = 1; n2 = 1; n3 = 1; n5 = 1; i2 = 0; i3 = 0; i5 = 0; for(int i=1;i<num;i++){ n2 = ugly[i2]*2; n3 = ugly[i3]*3; if(n2 == n3){ i3++; n3 = ugly[i3]*3; } n5 = ugly[i5]*5; if(n2 == n5 || n3 == n5){ i5++; n5 = ugly[i5]*5; } if(n2 < n3 && n2 < n5){ ugly[i] = n2; i2++; } else if(n3 < n2 && n3 < n5){ ugly[i] = n3; i3++; } else{ ugly[i] = n5; i5++; } } return ugly[num-1]; } }}}