JavaScript
[JS] 간단한 문제 풀이(팩토리얼, 거스름돈 구하기, 팰린드롬)
염두리안
2024. 11. 13. 22:51
728x90
반응형
팩토리얼
function factorial(n) {
let result = 1;
if(n !== 0){ // 만약 n이 0이 아니라면
// i는 1부터 n까지 1씩 증가하면서 result와 곱셈 실행(팩토리얼 연산)
for(let i = 1; i<=n; i++){
result = result * i;
}
}
// 결과 반환(0이라면 아무 연산도 하지 않았기에 1반환)
return result;
}
// 테스트 코드
console.log(factorial(12));
console.log(factorial(6));
console.log(factorial(3));
console.log(factorial(0));
거스름돈 구하기
function calculateChange(payment, cost) {
let change = payment - cost;
let tTh5 = 0 // 5만원
let tTh1 = 0 // 1만원
let th5 = 0 // 5천원
let th1 = 0; // 1천원
// change가 0이 될 때까지 반복
while(change !== 0){
if(change >= 50000){ // change가 5만원을 넘으면
tTh5 += 1; // tTh5에 1을 더하고
change -= 50000; // change에 50000을 뺌
} else if(change >= 10000) { // change가 1만원을 넘으면
tTh1 += 1; // tTh1에 1을 더하고
change -= 10000; // change에 10000을 뺌
} else if(change >= 5000) { // change가 5천원을 넘으면
th5 += 1; // th5에 1을 더하고
change -= 5000; // change에 5000을 뺌
} else { // 모든 조건에 해당하지 않는다면
th1 += 1; // th1에 1을 더하고
change -= 1000; // change에 1000을 뺌
}
}
// 출력
console.log(`50000원 지폐: ${tTh5}장`);
console.log(`10000원 지폐: ${tTh1}장`);
console.log(`5000원 지폐: ${th5}장`);
console.log(`1000원 지폐: ${th1}장`);
}
// 테스트 코드
calculateChange(100000, 33000);
console.log('');
calculateChange(500000, 378000);
팰린드롬
function isPalindrome(word) {
let tmp = word.split(''); // split() 메서드로 문자열을 배열로 분할 => ex. ['w', 'o', 'r' 'd']가 됨
tmp = tmp.reverse(); // reverse()로 배열을 뒤집어줌 => ex. ['d', 'r', 'o', 'w']
tmp = tmp.join(''); // join()으로 배열 결합
return Boolean(word===tmp); // 문자 비교 후 boolean값 리턴
}
// 테스트 코드
console.log(isPalindrome("racecar"));
console.log(isPalindrome("stars"));
console.log(isPalindrome("기러기"));
console.log(isPalindrome("123321"));
console.log(isPalindrome("hello"));
console.log(isPalindrome("kayak"));
사실 [팩토리얼] 문제와 [거스름돈 구하기] 문제는
더 간단하게 풀 수 있었는데
후딱 끝내야 해서 최대한 머리 안쓰고 푸느라
노가다 코딩을 해버렸다.. ^^;
(그리고 오블완 챌린지도 올려야 하니까)
오랜만에 코딩 문제를 푸니 반갑기도 하면서
확실히 머리가 굳어졌다는 느낌이 든다...
그리고 JS는 처음이라 좀 적응하는데 시간이 필요함
암튼 오늘은 쉬어가는 시간으로 요렇게 오블완 끗 ~ !
728x90
반응형