PS/제코베 JS 100제

    제코베 JS 100제 / 58 / 콤마 찍기

    원범이는 편의점 아르바이트가 끝난 후 정산을 하고자 합니다. 정산을 빨리하고 집에 가고 싶은 원범이는 프로그램을 만들려고 합니다. 숫자를 입력받고 천 단위로 콤마(,)를 찍어주세요. 예를 들어, 123456789를 입력받았으면 123,456,789를 출력해야 합니다. function printComma(n) { const n_str = String(n).split("").reverse(); let result = []; for (let i = 1; i < n_str.length + 1; i++) { result.push(n_str[i - 1]); if (i % 3 === 0) { result.push(","); } } if (result.at(-1) === ",") result.pop(); result...

    제코베 JS 100제 / 57 / 1의 개수

    0부터 1000까지의 1의 개수를 세는 프로그램을 만들려고 합니다. 예를 들어 0부터 20까지 1의 개수를 세어본다면 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19에 각각 1이 들어가므로 12개의 1이 있게 됩니다. 11은 1이 2번 들어간 셈이죠. 그렇다면 0부터 1000까지 수에서 1은 몇 번이나 들어갔을까요? 출력해 주세요. function countOne(n) { let cnt = 0; for (let i = 0; i el === "1").length; } console.log(cnt); } countOne(1000);

    제코베 JS 100제 / 56 / 객체의 함수 응용

    다음의 객체가 주어졌을 때 한국의 면적과 가장 비슷한 국가와 그 차이를 출력하세요. function solution(country_area) { // 한국의 면적 저장 const korea_area = country_area["korea"]; // 객체에서 한국에 대한 정보 삭제 delete country_area.korea; // [나라, 면적]을 배열로 저장 let area_entries = Object.entries(country_area); // 면적의 값만 배열로 저장 let areas = Object.values(country_area); for (let i = 0; i < areas.length; i++) { // 면적의 차이 구하기 areas[i] = Math.abs(areas[i] - k..

    제코베 JS 100제 / 55 / 하노이의 탑

    하노이의 탑은 프랑스 수학자 에두아르드가 처음으로 발표한 게임입니다. 하노이의 탑은 A, B, C 3개의 기둥과 기둥에 꽂을 수 있는 N개의 원판으로 이루어져 있습니다. 이 게임에서 다음의 규칙을 만족해야 합니다. 1. 처음에 모든 원판은 A 기둥에 꽂혀 있다. 2. 모든 원판의 지름은 다르다. 3. 이 원판은 세 개의 기둥 중 하나에 반드시 꽂혀야 한다. 4. 작은 원판 위에 큰 원판을 놓을 수 없다. 5. 한 번에 하나의 원판(가장 위에 있는 원판)만을 옮길 수 있다. 이 규칙을 만족하며 A 기둥에 있는 원반 N개를 모두 C 원반으로 옮기고 싶습니다. 모든 원반을 옮기기 위해 실행되어야 할 최소 원반 이동 횟수를 계산하는 프로그램을 완성해 주세요. const route = []; function ha..

    제코베 JS 100제 / 54 / 연속되는 수

    은주는 놀이공원 아르바이트를 하고 있다. 은주가 일하는 놀이공원에서는 현재 놀이공원 곳곳에 숨겨진 숫자 스탬프를 모아 오면 선물로 주는 이벤트를 하고 있다. 숫자 스탬프는 매일 그 수와 스탬프에 적힌 숫자가 바뀌지만 그 숫자는 항상 연속된다. 그런데 요즘 다른 날에 찍은 스탬프를 가지고 와 선물을 달라고 하는 손님이 늘었다. 스탬프에 적힌 숫자가 공백으로 구분되어 주어지면 이 숫자가 연속수인지 아닌지 "YES"와 "NO"로 판별하는 프로그램을 작성하시오 입력1 1 2 3 4 5 출력 1 YES 입력2 1 4 2 6 3 출력2 NO function isConsecutiveNumber(str) { let arr = str.split(" ").map(Number); for (let i = 1; i < arr...

    제코베 JS 100제 / 53 / 괄호 문자열

    괄호 문자열이란 괄호 기호인 '{', '}', '[', ']', '(', ')' 와 같은 것을 말한다. 그중 괄호의 모양이 바르게 구성된 문자열을 바른 문자열, 그렇지 않은 문자열을 바르지 않은 문자열이라 부르도록 하자. (())와 같은 문자열은 바른 문자열이지만 ()())와 같은 문자열은 바르지 않은 문자열이다. 입력으로 주어진 괄호 문자열이 바른 문자열인지 바르지 않은 문자열인지 "YES"와 "NO"로 구분된 문자열을 출력해보자. function isValidBracketString(str) { if (!str.length) return; // 빈 문자열일 경우 let left_bracket = [ ["(", 0], ["{", 0], ["[", 0], ]; let right_bracket = [ ["..