목록분류 전체보기 (497)
규도자 개발 블로그
문제 Kaprika수를 구하라. Kaprika 수란? 예를 들어 네 자리 숫자 2025의 가운데를 갈라보면 20과 25의 두개의 숫자가 생긴다. 이 두개의 숫자를 더하면 45이고, 45를 제곱하면 2025가 되어 원상태로 되돌아간다. 이러한 성질을 갖는 수를 Kaprika수 라고 한다. 또 81은 가운데를 잘라보면 8 과 1로 갈라지고, 더하면 9가 되고 다시 제곱하면 81로 돌아간다. 그러므로 81은 두 자리 숫자의 Kaprika수가 되는 것이다. 네 자리로 구성된 kaprika 수를 모두 구하는 프로그램을 작성하시오. 입력 입력은 없다 출력 [2025, 3025, 9801] 입출력 예 입력출력 [2025, 3025, 9801] 풀이 kaprika_array = [] for i in range(1000..
function stringNumberToInt(stringNumber){ return parseInt(stringNumber.replace(/,/g , '')); } 실제로 웹 작업이나 서핑을 하다보면 숫자는 보통 100,000,000 이런 식으로 값을 파악하기 쉽게 1,000단위마다 콤마가 찍혀있는 것을 흔하게 접할 수 있다. 만약에 해당 숫자를 계산에 사용할 필요가 있을 때 해당 숫자가 들어있는 태그에 따로 value값으로 순수한 정수값이 지정돼있지 않으면 태그 내의 글자를 그대로 불러와서 연산에 사용하게 된다. 하지만 그렇게 하면 위 숫자는 100000000이라는 값을 가진 정수형으로 취급되는 게 아니라 '100,000,000'이라는 문자열로 취급되어 연산을 수행할 수 없다. (문자열을 붙이는 의..
function numberFormat(inputNumber) { return inputNumber.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } 보이는 그대로 정규식을 이용해 해당 함수로 들어온 숫자를 천 단위마다 콤마를 찍어 리턴해주는 함수이다. 숫자를 다루는 일이 잦은 웹 플랫폼이라면, 어느 페이지에서든 불러오는 정적 js파일에 해당 함수를 추가하여 필요할 때마다 쓰기 유용하다. 대신 소수점에 대한 처리는 안 돼있어 소수를 넣으면 아래와 같이 출력된다. 위의 코드부에 마우스를 올리면 우측 상단에 copy라는 박스가 뜬다. 해당 버튼을 누르면 소스가 복사된다. 물론 드래그와 우클릭도 허용돼있다. 위 사진은 해당 함수가 불러와진 페이지에서(크롬) 콘솔창을 ..
문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 수 있다. 33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ... n을 d(n)의 생성자라..
문제 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다. 예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째, 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다. 계단 오르는 데는 다음과 같은 규칙이 있다. 계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다. 연속된 세 개의 계단을 모두 밟아서는 안 된다. 단, 시작점은 계단에 포함되지 않는다. 마지막 도착 계단은 반드시 밟아야 한다. 따라서 첫 번째 계단을..
이 게시물은 스티브 맥코넬이 쓴 CODE COMPLETE2에 나온 내용이며 다른 사람들에게도 변수 이름의 중요성과 그 이름을 정하는 데 도움을 주기 위해, 그리고 나 자신도 필요할 때마다 참고하기 위해 쓴다는 것을 알린다. 피해야 할 변수 이름 다음은 피해야 할 변수 이름에 대한 몇 가지 가이드라인이다. 오해의 소지가 있는 이름이나 축약어를 피한다. 이름이 모호하지 않은지 확인한다. 예를 들면 FALSE는 일반적으로 TRUE의 반대말이며 "Fig and Almond Season"에 대한 축약어로는 좋지 않을 것이다. 유사한 의미가 있는 이름을 피한다. 프로그램에 해를 주지 않고 두 변수의 이름을 교환할 수 있다면 이름을 다시 만들 필요가 있다. 예를 들면 input과 inputValue, recordNu..
이 게시물은 스티브 맥코넬이 쓴 CODE COMPLETE2에 나온 내용이며 다른 사람들에게도 변수 이름의 중요성과 그 이름을 정하는 데 도움을 주기 위해, 그리고 나 자신도 필요할 때마다 참고하기 위해 쓴다는 것을 알린다. 표준 접두사의 장점 표준 접두사는 이름 규약이 갖는 일반적인 장점을 모두 제공할 뿐만 아니라 다른 장점도 제공한다. 매우 많은 이름이 표준화되어 있기 때문에 단일 프로그램이나 클래스에서 기억해야 하는 이름이 적어진다. 표준 접두사는 모호해지기 쉬운 이름 영역을 정확하게 만든다. min과 first, last, max사이의 정확한 구분은 특히 도움이 된다. 표준 접두사는 이름을 더욱 간결하게 만든다. 예를 들면 단락의 수를 나타내기 위해서 totalParagraphs대신 cpa를 사용할..
이 게시물은 스티브 맥코넬이 쓴 CODE COMPLETE2에 나온 내용이며 다른 사람들에게도 변수 이름의 중요성과 그 이름을 정하는 데 도움을 주기 위해, 그리고 나 자신도 필요할 때마다 참고하기 위해 쓴다는 것을 알린다. 상수 이름 상수 이름은 상수가 가리키는 숫자보다는 상수가 표현하는 추상적인 대상을 나타내야 한다. FIVE는 상수의 이름으로는 나쁜 이름이다(상수가 표현하고 있는 값이 5.0이든 아니든 상관없이). CYCLES_NEEDED는 좋은 이름이다. CYCLES_NEEDED는 5.0일 수도 있고 6.0일 수도 있다. FIVE = 6.0은 말도 안 된다. 마찬가지로 BAKERS_DOZEN은 잘못 지은 상수 이름이며 DONUTS_MAX는 좋은 상수 이름이다.
이 게시물은 스티브 맥코넬이 쓴 CODE COMPLETE2에 나온 내용이며 다른 사람들에게도 변수 이름의 중요성과 그 이름을 정하는 데 도움을 주기 위해, 그리고 나 자신도 필요할 때마다 참고하기 위해 쓴다는 것을 알린다. 열거형의 이름 열거형을 사용하면 Color_나 Planet_, Month_와 같은 접두사를 사용하여 해당 타입의 멤버가 모두 같은 그룹에 속한다는 것을 보장할 수 있다. 다음은 접두사를 갖는 열거형의 요소를 규명하는 몇 가지 예제다. 접두사 이름 규칙을 사용한 열거형을 작성한 예제 Public Enum Color Color_Red Color_Green Color_Blue End Enum Public Enum Planet Color_Earth Color_Mars Color_Venus E..
전의 게시물에서도 밝혔다시피 이 게시물은 스티브 맥코넬이 쓴 CODE COMPLETE2에 나온 내용이며 다른 사람들에게도 변수 이름의 중요성과 그 이름을 정하는 데 도움을 주기 위해, 그리고 나 자신도 필요할 때마다 참고하기 위해 쓴다는 것을 알린다. 불린 변수 이름 전형적인 불린 변수의 이름을 기억한다. 다음은 전형적으로 유용하게 사용되는 변수의 이름이다. done : 무언가 수행되었다는 것을 가리키기 위해서 done을 사용한다. 이 변수는 반복문이 수행되었거나 다른 연산이 수행되었음을 가리킬 수 있다. 무언가가 처리되기 전에 done을 거짓으로 설정하고 완료되고 난 후 참으로 설정한다. error : 오류가 발생했음을 가리키기 위해서 error를 사용한다. 오류가 발생했을 때 이 변수를 참으로 설정하..