8자리 이내의 정수를 입력받아 화폐단위로 출력한다.
<도우미>
한 자리씩 분리하여 배열에 기억시킨 후 숫자를 순서대로 출력하면서 ","을 출력해야할 위치인지 확인하고 ","를 출력하면 된다
예) 1234567 → 1,234,567
123 → 123
알고리즘으로 어떤식으로 해야할지좀 가르켜주셈...;;
8자리 이내의 정수를 입력받아 화폐단위로 출력한다.
<도우미>
한 자리씩 분리하여 배열에 기억시킨 후 숫자를 순서대로 출력하면서 ","을 출력해야할 위치인지 확인하고 ","를 출력하면 된다
예) 1234567 → 1,234,567
123 → 123
알고리즘으로 어떤식으로 해야할지좀 가르켜주셈...;;
재귀 추천, 그리고 이게 무슨 알고리즘
정수 나누기랑 mod
var str = \"1234567\"; var rmd = parseInt(num) % str.length ; buf += str.substring(0, rmd); for( var i = rmd ; i < str.length ; i+= 3){ buf += \",\" + str.substring(i, i+3);
아 내가 쓴 코드 삑사리가 있넹. var rmd = str.length % 3; 으로 해야 제대로 될 듯. 정수의 자리수를 3으로 나눈 나머지가 맨 처음 등장하는 따옴표의 앞부분임. 이 부분만 떼내면 그다음에는 \",\" 하고 숫자 3개씩 끊어서 붙이면 됨. 숫자가 1, 34, 543처럼 3이하인 경우에는 for 루프에서 그냥 빠져나감.
간단하게는 reverse 시킨뒤에 3번째마다 콤마찍음. 그 뒤에 다시 reverse. 연산량에서 보면 이게 훨씬 적음.