PS
제코베 JS 100제 / 67 / 민규의 악수
광장에서 모인 사람들과 악수를 하는 행사가 열렸습니다. 참가자인 민규는 몇명의 사람들과 악수를 한 후 중간에 일이 생겨 집으로 갔습니다. 이 행사에서 진행된 악수는 총 n번이라고 했을 때, 민규는 몇 번의 악수를 하고 집으로 돌아갔을까요? 그리고 민규를 포함한 행사 참가자는 몇 명일까요? - 악수는 모두 1대 1로 진행이 됩니다. - 민규를 제외한 모든 참가자는 자신을 제외한 참가자와 모두 한번씩 아굿를 합니다. - 같은 상대와 중복된 악수는 카운트 하지 않습니다. - 민규를 제외한 참가자는 행사를 모두 마쳤습니다. 예를들어 행사에서 59회의 악수가 진행되었다면 민규는 4번의 악수를 하였고 민규를 포함한 참가자는 12명이다. 행사에서 진행된 악수 횟수(n)를 입력으로 받으면 민규의 악수 횟수와 행사 참가..
제코베 JS 100제 / 66 / 블럭탑쌓기
탑을 쌓기 위해 각 크기별로 준비된 블럭들을 정해진 순서에 맞게 쌓아야 합니다. 순서에 맞게 쌓지 않으면 무너질 수 있습니다. 예를 들면 정해진 순서가 BAC 라면 A 다음 C가 쌓아져야 합니다. 선행으로 쌓아야 하는 블럭이 만족된 경우라면 탑이 무너지지 않습니다. - B를 쌓지 않아도 A와 C를 쌓을 수 있습니다. - B 다음 블럭이 C가 될 수 있습니다. 쌓아져 있는 블럭 탑이 순서에 맞게 쌓아져 있는지 확인하세요. 1. 블럭은 알파벳 대문자로 표기합니다. 2. 규칙에 없는 블럭이 사용될 수 있습니다. 3. 중복된 블럭은 존재하지 않습니다. function blockTowerStack(towers, rule) { let result = []; for (const tower of towers) { le..
제코베 JS 100제 / 65 / 변형된 리스트
a = [1, 2, 3, 4] b = [a, b, c, d] 이런 리스트가 있을 때 [[1, a], [b, 2], [3, c], [d, 4]] 이런 식으로 a, b 리스트가 번갈아가면서 출력되게 해주세요. function deformedList(a, b) { let result = Array.from({ length: a.length }, () => Array(2)); let [idx_a, idx_b] = [0, 1]; for (let i = 0; i < a.length; i++) { result[i][idx_a] = a[i]; result[i][idx_b] = b[i]; idx_a ^= 1; idx_b ^= 1; } console.log(result); } const a = [1, 2, 3, 4]; c..
백준 / DP(Dynamic Programming) / 1003번 / 피보나치 함수 / JS
문제 다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다. int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); } } fibonacci(3)을 호출하면 다음과 같은 일이 일어난다. fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출)을 호출한다. fibonacci(2)는 fibonacci(1) (두 번째 호출)과 fibonacci(0)을 호출한다. 두 번째 호출한 fibonacci(1)은 1을 출력하고 1을 리턴한다. fibonacci(0)은 ..
제코베 JS 100제 / 64 / 이상한 엘레베이터
정량 N에 정확히 맞춰야만 움직이는 화물용 엘레베이터가 있습니다. 화물은 7kg, 3kg 두 가지이며 팔이 아픈 은후는 가장 적게 화물을 옮기고 싶습니다. 예를 들어 정량이 24kg이라면 3kg 8개를 옮기는 것보다는 7kg 3개, 3kg 1개 즉 4개로 더 적게 옮길 수 있습니다. 입력 정량 N이 입력됩니다. 출력 가장 적게 옮길 수 있는 횟수를 출력합니다. 만약 어떻게 해도 정량이 N이 되지 않는다면 -1을 출력합니다. /** * 정량 N에 정확히 맞춰야만 움직이는 화물용 엘리베이터가 있습니다. * 화물은 7kg, 3kg 두 가지이며 팔이 아픈 은후는 가장 적게 화물을 옮기고 싶습니다. * 예를 들어 정량이 24kg이라면 3kg 8개를 옮기는 것보다는 * 7kg 3개, 3kg 1개 즉 4개로 더 적게..
제코베 JS 100제 / 63 / 친해지고 싶어
한국 대학교의 김한국 교수님은 학생들과 친해지기 위해서 딸에게 줄임말을 배우기로 했습니다. 딸은 '복잡한 세상 편하게 살자' 라는 문장을 '복세편살'로 줄여 말합니다. 교수님이 줄임말을 배우기 위해 아래와 같이 어떤 입력이 주어지면 앞 글자만 줄여 출력하도록 해주세요. 입력은 한글 혹은 영어로 입력되며, 띄어쓰기를 기준으로 하여 짧은 형태로 출력합니다. function initial(input) { let result = ""; input.split(" ").map((el) => (result += el.at(0))); console.log(result); } const input = "복잡한 세상 편하게 살자"; initial(input);