JavaScript로 구현하는 금액의 영어 단위 변환 (Number to Words)
·
Programing/javascript
연관글2025.04.18 - [Programing/javascript] - 💰 숫자를 한글로 금액 단위로 표현2025.04.18 - [Programing/javascript] - 💻 숫자를 한글 숫자 표기로 변환2025.05.27 - [Programing/javascript] - JavaScript로 구현하는 금액 단축 표기 (K / M / B 표기법)2025.05.27 - [Programing/javascript] - JavaScript로 구현하는 게임 데미지 단위 축약 (A ~ ZZZZ)2025.06.11 - [Programing] - 엑셀/스프레디시트에서 숫자를 한글로 표기하는 방법 총정리 (Excel to Hangul Conversion)금액을 영어 단위로 표현하는 이유"금액 변환" 기능은 전..
JavaScript로 구현하는 소수 판별 (Prime Check)
·
Programing/Algorithm
소수란 무엇인가?소수(Prime Number)는 1과 자기 자신만을 약수로 가지는 1보다 큰 자연수를 의미합니다. 예를 들어 2, 3, 5, 7, 11 등은 모두 소수이며, 4, 6, 8, 9 같은 수는 소수가 아닙니다. 소수는 암호학, 해시 함수, 수론 기반 알고리즘 등에 널리 활용되기 때문에 알고리즘 문제에서도 자주 등장합니다.방법 1: 2부터 n-1까지 나누어 보기가장 기본적인 소수 판별 방법은 주어진 수를 2부터 n-1까지 순차적으로 나누어 나누어떨어지는 수가 있는지 확인하는 것입니다.function isPrimeBasic(n) { if (n 장점: 개념적으로 단순하고 구현이 쉬움단점: 수가 커질수록 반복 횟수가 많아져 비효율적방법 2: 제곱근(√n)까지만 검사하기모든 합성수는 √n 이하의 인수..
JavaScript로 구하는 최대공약수와 최소공배수 (GCD / LCM)
·
Programing/Algorithm
최대공약수와 최소공배수란?최대공약수(GCD, Greatest Common Divisor)는 두 수가 공통으로 가지는 약수 중 가장 큰 값을 의미합니다. 예를 들어 12와 18의 공약수는 1, 2, 3, 6이며, 그중 가장 큰 수는 6이므로 GCD는 6입니다.반대로, 최소공배수(LCM, Least Common Multiple)는 두 수가 공통으로 가지는 배수 중 가장 작은 값을 말합니다. 같은 예시에서 12의 배수는 12, 24, 36, 48..., 18의 배수는 18, 36, 54..., 공통으로 나오는 배수 중 가장 작은 값은 36이므로 LCM은 36입니다.이 두 개념은 수학적 문제 풀이뿐만 아니라, 시간 계산, 주기 분석, 배치 문제 등 여러 실제 코딩 문제에 자주 활용됩니다.유클리드 호제법을 이용한..
JavaScript로 검사하는 회문 문자열 (Palindrome Check)
·
Programing/Algorithm
회문이란 무엇인가?회문(Palindrome)은 앞으로 읽으나 뒤로 읽으나 동일한 문장이나 단어를 의미합니다. 예를 들어 'racecar', 'level', 'noon' 같은 단어는 회문의 대표적인 예시입니다. 회문 검사는 문자열 처리 능력과 기본적인 알고리즘 문제 해결 능력을 연습하기에 좋은 주제입니다.자바스크립트에서 회문을 판별하는 여러 가지 방법과 각각의 장단점, 사용 상황을 살펴보겠습니다.방법 1: 문자열을 뒤집어 비교하는 방식가장 간단한 방법은 문자열을 뒤집어서 원본 문자열과 비교하는 것입니다.function isPalindrome(str) { const normalizedStr = str.replace(/[^a-zA-Z0-9]/g, '').toLowerCase(); return normali..
JavaScript로 푸는 아나그램 판별 (Anagram Detection)
·
Programing/Algorithm
아나그램이란 무엇인가아나그램(Anagram)은 주어진 문자열의 문자를 재배열하여 다른 문자열을 만들 수 있는 경우를 의미합니다. 예를 들어, 'listen'과 'silent'는 서로의 문자를 재배열해서 만들 수 있으므로 아나그램입니다. 이 문제는 문자열의 구성 요소를 비교하여 두 문자열이 동일한 문자 집합을 갖는지를 판단하는 방식으로 해결할 수 있습니다.자바스크립트를 활용하여 아나그램을 판별하는 여러 가지 방법을 알아보겠습니다.방법 1: 정렬 후 비교하는 방식가장 직관적인 방법은 두 문자열을 정렬한 뒤 같은지 비교하는 방식입니다.function isAnagramSorted(str1, str2) { const normalize = str => str.replace(/[^a-zA-Z]/g, '').toLo..
JavaScript로 배우는 문자열 뒤집기 (String Reverse)
·
Programing/Algorithm
문자열 뒤집기의 개념과 활용문자열을 뒤집는 작업은 알고리즘 입문 문제에서 자주 등장하는 주제입니다. 이 연산은 단순히 글자의 순서를 반대로 정렬하는 것이지만, 그 과정을 구현하는 방식에 따라 자바스크립트의 배열, 반복문, 함수형 프로그래밍 개념 등을 함께 익힐 수 있는 학습 기회가 됩니다.회문 검사(palindrome)나 문자열 정렬, 사용자 입력 처리 등 실무적인 상황에서도 문자열을 뒤집는 로직은 종종 활용됩니다. 자바스크립트에서 문자열은 불변(immutable)이기 때문에, 이를 다루기 위해서는 새로운 문자열을 생성해야 합니다.split().reverse().join()을 이용한 기본 방법가장 널리 알려진 방식은 배열 메서드를 조합하여 문자열을 뒤집는 방법입니다.function reverseStrin..
피보나치 수열의 이해와 자바스크립트 구현
·
Programing/Algorithm
문자열을 왜 뒤집어야 할까?문자열을 뒤집는 작업은 알고리즘 문제에서 자주 등장하며, 회문 검사(palindrome), 텍스트 포맷 처리, 사용자 입력 검증 등 실무에서도 활용될 수 있습니다. 특히 자바스크립트를 처음 배우는 단계에서 문자열 처리, 반복문, 배열 메서드 등 다양한 기초 문법을 연습하기에 좋은 주제이기도 합니다.이 글에서는 문자열을 뒤집는 여러 가지 방법을 자바스크립트 코드 예제와 함께 소개합니다. 각각의 방법이 어떻게 동작하는지 단계적으로 설명하며, 초보자도 쉽게 이해할 수 있도록 돕겠습니다.배열 메서드를 활용한 기본 방식자바스크립트에서 문자열을 가장 간단하게 뒤집는 방법은 split(), reverse(), join()이라는 세 가지 배열 메서드를 조합하는 방식입니다.function re..
JavaScript로 이해하는 하노이의 탑 (Tower of Hanoi)
·
Programing/Algorithm
하노이의 탑이란하노이의 탑(Tower of Hanoi)은 대표적인 재귀 알고리즘 문제로 널리 알려져 있습니다. 이 문제는 세 개의 기둥과 여러 개의 크기 다른 원판으로 구성되며, 모든 원판은 크기가 큰 것이 아래에, 작은 것이 위에 쌓여 있는 형태로 첫 번째 기둥에 위치해 있습니다. 목표는 특정 규칙을 지키며 모든 원판을 세 번째 기둥으로 옮기는 것입니다.이때 적용되는 규칙은 다음과 같습니다:한 번에 하나의 원판만 옮길 수 있습니다.더 작은 원판만 큰 원판 위에 놓을 수 있습니다.중간 기둥을 보조 기둥으로 활용할 수 있습니다.이 문제는 단순한 퍼즐처럼 보이지만, 재귀 함수의 구조, 함수 호출 흐름, 분할 정복 사고방식을 익히는 데 매우 효과적입니다. 특히 자바스크립트로 알고리즘을 연습하는 초급 개발자에게..
JS 피보나치(Fibonacci)
·
Programing/Algorithm
피보나치 수열은 코딩 면접에서 자주 출제되는 주제 중 하나입니다. 단순한 수학적 구조로 시작하지만, 이를 구현하는 방법에 따라 지원자의 재귀, 반복문, 동적 계획법에 대한 이해를 평가할 수 있기 때문입니다. 각 방식의 효율성과 구조적 차이는 알고리즘적 사고력을 확인하는 좋은 기준이 됩니다.재귀 방식function fibRecursive(n) { if (n === 0) return 0; if (n === 1) return 1; return fibRecursive(n - 1) + fibRecursive(n - 2);}재귀 방식은 수학적 정의와 유사한 형태로 구현할 수 있어 직관적입니다. 다만, 동일한 계산이 반복되기 때문에 효율이 매우 떨어집니다.시간 복잡도: O(2^n)공간 복잡도: O(n) (호출 ..
자바스크립트로 팩토리얼 계산하기: 재귀함수 vs 반복문
·
Programing/Algorithm
자바스크립트를 배우는 초보 개발자라면 함수 개념을 익힐 때 꼭 한번 마주치는 예제가 바로 팩토리얼(factorial)입니다. 간단한 수학 개념이지만 자바스크립트 문법, 재귀 호출, 반복문 로직을 이해하는 데 아주 좋은 연습 소재입니다. 이 글에서는 팩토리얼이 무엇인지 개념부터 설명하고, 자바스크립트로 구현하는 방법을 재귀함수 방식과 반복문 방식으로 나누어 소개하겠습니다. 마지막에는 두 방식의 성능 차이와 입문자에게 유용한 실습 자료도 추천해드릴게요.팩토리얼이란?팩토리얼은 수학에서 n!로 표현하며, n × (n - 1) × (n - 2) × ... × 1의 곱을 의미합니다. 예를 들어:5! = 5 × 4 × 3 × 2 × 1 = 1200! = 1 (정의상 1로 간주)수학적 정의는 간단하지만, 이를 코드로 ..