가끔 상위 폴더에 package.json 하나를 두고 하위 폴더 파일을 기준으로 동일한 npm script를 실행해야 하는 경우가 있습니다. 예를 들면 간단한 프로젝트들을 여러 개 모아놨다던가, 책 예제들을 많이 짜 놓은 경우 등이 있겠죠? 사실 폴더마다 package.json을 작성하는 게 베스트지만 사람마다 귀찮음 포인트는 다르니까요... 폴더 구조가 다음과 같다고 합시다. Directory ├─ package.json ├─ SubDirectory1 │ ├─ index.html │ └─ index.js ├─ SubDirectory2 │ ├─ index.html │ └─ index.js ├─ SubDirectory3 │ ├─ index.html │ └─ index.js ├─ SubDirectory4 │..
문제 링크 www.acmicpc.net/problem/21737 21737번: SMUPC 계산기 SMUPC를 기념하기 위해 ALGOS와 DSC Sookmyung에서는 SMUPC의 각 글자로 계산이 이루어지는 계산기를 만들었다. 가은이와 혜민이는 이 계산기와 같은 방식으로 작동하는 프로그램을 만들고자 한다. 가은 www.acmicpc.net 풀이 간단한 구현문제입니다. 문자열 파싱은 자바스크립트가 편합니다. 1) 정규표현식으로 수와 연산자를 분리해줍시다. /[0-9]+/는 연속한 숫자를, /[A-Z]/는 대문자를 뽑습니다. 2) 규칙에 맞게 계산해줍시다. 3) 정답을 출력합니다. 정답 코드 const fs = require('fs'); const stdin = fs.readFileSync('/dev/std..
문제 링크 www.acmicpc.net/problem/16935 16935번: 배열 돌리기 3 크기가 N×M인 배열이 있을 때, 배열에 연산을 R번 적용하려고 한다. 연산은 총 6가지가 있다. 1번 연산은 배열을 상하 반전시키는 연산이다. 1 6 2 9 8 4 → 4 2 9 3 1 8 7 2 6 9 8 2 → 9 2 3 6 1 5 1 8 3 4 2 9 → www.acmicpc.net 풀이 귀찮은 구현 문제입니다. 자바스크립트로 풀었습니다. 이런 류의 문제에서는 구현해둔 함수를 이용하는 게 코드량을 줄이는 포인트입니다. 1) 상하 반전은 행의 순서를 reverse() 함수를 이용해 바꿔주면 됩니다. 2) 좌우 반전은 각 행마다 reverse() 함수를 적용하여 열의 순서를 바꿔줍니다. 3) 오른쪽 90도 ..
문제 링크 programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 풀이 1) 배열을 1부터 순서대로 채워줍니다. 2) 시계 방향으로 회전을 시켜야 하니까, 반시계 방향으로 순회하며 값을 복사해줍니다. 3) 정답 리턴 정답 코드 function solution(rows, columns, queries) { const board = Array(rows).fill().map((row, i) => Array(column..
문제 링크 programmers.co.kr/learn/courses/30/lessons/77486 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 풀이 칫솔을 팔아서 한 번에 얻을 수 있는 이익이 최대 10,000원이고, 10%씩 부모에게 상납해야 하므로 최대 5세대 위의 부모까지만 상납하면 됩니다. 1) 각 사람의 부모를 저장해줍니다. 2) 사람과 이익금이 주어졌을 때 부모에게 10%씩 상납하는 함수를 만듭니다. 3) 각 칫솔 판매마다 재귀적으로 돌려줍시다. ES2015 이후로 객체 프로퍼티의 키가 s..