package digitGroup; import java.util.Stack; /** * 10Áø¼ö¸¦ ÀԷ¹޾Æ, õ(1000)ÀÚ¸® ±¸ºÐÀÚ¸¦ Ãß°¡ÇÏ´Â ÇÁ·Î±×·¥. */ public class DigitGroupAsInt { public static void main(String args[]) { int loopCount = 1000000; for(int idx=0; idx<10; idx++) { long startMilliTime = System.currentTimeMillis(); benchmark(10, 10, loopCount); long endMilliTime = System.currentTimeMillis(); System.out.println( loopCount + ";" + (endMilliTime - startMilliTime)); loopCount += 1000000; } } private static void benchmark(int startNum, int interval, int loopCount) { int inputNumber = startNum; for(int cnt=0; cnt digitStack = new Stack(); StringBuilder sb = new StringBuilder(); int quotient, spare, count = 0; do { // ¸ò°ú ³ª¸ÓÁö °è»ê quotient = number / DECIMAL_NUMBER; spare = number % DECIMAL_NUMBER; // ¸òÀ» n ¿¡ ÀçÇÒ´ç, ³ª¸ÓÁö´Â ½ºÅÿ¡ Ãß°¡ number = quotient; digitStack.push(Character.forDigit(spare, 10)); // 3°³ÀÇ ¼ýÀÚ¸¦ Ãß°¡Çß´Ù¸é, ±¸ºÐÀÚ¸¦ ¹öÆÛ¿¡ Ãß°¡ if (++count == 3 && quotient > 0) { digitStack.push(THOUSANDS_SEPARATOR); count = 0; } } while (quotient > 0); // ½ºÅÿ¡ ÀúÀåµÈ ¼ýÀÚ¸¦ ²¨³» ¹®ÀÚ¿­ ¹öÆÛ¿¡ Ãß°¡ while (!digitStack.empty()) { sb.append(digitStack.pop()); } return sb.toString(); } }