본문 바로가기

분류 전체보기181

[Softeer] 택배 마스터 광우 JS https://softeer.ai/practice/6273 여름 휴가를 떠나기 위해 용돈이 필요했던 광우는 H택배 상하차 아르바이트를 지원 했다. 광우는 평소에 운동을 하지않아 힘쓰는 데에 자신이 없었지만, 머리 하나 만큼은 비상해 택배가 내려오는 레일의 순서를 조작해서 최소한의 무게만 들 수 있게 일을 하려고 한다. 레일은 N개이며, 각각의 레일은 Ni 무게 전용 레일로 주어진다. (같은 무게의 레일은 주어지지 않는다.) 레일의 순서가 정해지면 택배 바구니 무게(M)를 넘어가기 전까지 택배 바구니에 택배를 담아 들고 옮겨야 한다. 레일 순서대로 택배를 담되, 바구니 무게를 초과하지 않은 만큼 담아서 이동하게 되면 1번 일한 것으로 쳐준다. (단, 택배는 순서대로 담아야 하므로 레일의 순서를 건너 뛰어 .. 2024. 1. 31.
[완전탐색] 순열, 조합, 부분집합, 백트래킹 JS로 구현하기 순열 permutation 순서를 따짐, 시간 복잡도 O(n!) [1,2,3]의 순열 [ [ 1, 2 ], [ 1, 3 ], [ 2, 1 ], [ 2, 3 ], [ 3, 1 ], [ 3, 2 ] ] function getPermutation(arr, count) { if (count === 1) { return arr.map((e) => [e]); } const result = []; arr.forEach((selected) => { const rest = arr.filter((e) => e !== selected); // 선택된 걸 제외한 남은 것들로 만든 순열을 구한다 const newPermutation = getPermutation(rest, count - 1); // 선택된것과 남은 것으로 만들.. 2024. 1. 31.
[Softeer] 동계 테스트 시점 예측 JS https://softeer.ai/practice/6281 북위 65도. 스웨덴의 소도시 아르예플로그(Arjeplog)에 자리한 동계 테스트 센터. 겨울 내내 얼음 두께가 1M 내외로 유지되는 광할한 얼음 호수와 그냥 걷기조차 힘든 눈길을 무대로 현대자동차그룹 연구원들은 극한 환경 속에서 더 나은 차량 성능을 확보하기 위해 제동안정성, 주행안정성, ADAS 기능 등에 대한 다양한 평가를 숨가쁘게 이어가고 있다. 이 곳은 기온이 너무 추워서 아침에 출근해보면 테스트 차량들 위에 큰 눈얼음이 생겨 있다. 정상적인 테스트를 위해서는 커다란 얼음이 어느정도 녹고 난 뒤에 가능한데, 차량 마다 당일의 테스트 가능 시점을 알기 위한 예측 프로그램을 제작 중에 있다. 예측 프로그램은 N×M (5 ≤ N, M ≤ 10.. 2024. 1. 31.
[Softeer] 통근버스 출발 순서 검증하기 JS https://softeer.ai/practice/6257 현대자동차그룹 연구소에서는 임직원들의 편의를 위해 출퇴근 통근 버스를 제공하고 있다. 퇴근 시간이 되면 연구소 주차장에는 수 많은 버스들이 일렬로 주차되어 있다. 퇴근 버스는 번호순서 대로 출발해야 하는데, 주차장은 폭이 좁아 앞의 버스가 모두 나가야 뒤의 버스가 나갈 수 있는 구조로 되어 있다. 버스를 순서에 맞게 출발시키기 위해, 연구소 주차장의 맞은편에 임시 주차장을 추가로 건설하였다. 이렇게 만든 임시 주차장은 출입구가 하나밖에 없는 데다가, 폭이 좁아서 스택(Stack)처럼 맨 처음 들어간 버스는 맨 마지막에 나올 수 있다. 또한, 한 번 임시 주차장으로 이동했던 버스는 다시 원래의 주차장으로 이동할 수 없다. 위와 같은 상황에서 퇴근 .. 2024. 1. 30.
[Softeer] 진정한 효도 JS https://softeer.ai/practice/7374 남우는 어버이날을 맞아 부모님의 일을 돕기로 하였습니다. 남우의 부모님께서는 농사를 지으시기에, 남우는 땅을 일구는 일을 도우려고 합니다. 남우에게 할당된 땅은 3 * 3 크기의 격자로 이루어져 있으며, 각 땅의 높이는 1이상 3이하의 정수값으로 이루어져 있습니다. 부모님께서 농사를 지을 땅의 크기는 1 * 3이며, 농사를 짓기 위해서는 해당 영역 내 땅의 높이가 전부 동일해야 합니다. 따라서 남우는 특정 땅의 높이를 낮추거나 높여, 3 * 3 격자 내에 부모님께서 농사를 지을 수 있는 영역이 최소 1곳 이상 생기도록 만들려고 합니다. 남우가 특정 땅의 높이를 1만큼 낮추거나 높이는데 1만큼의 비용이 소요된다고 했을 때, 부모님께서 농사를 지으실.. 2024. 1. 30.
[Softeer] 회의실 예약 JS 문제 요점 N개의 회의실, 9~18시, 시 단위, M개의 회의, 소문자이름 회의실 별 빈 시간대 출력 풀이 크기가 18이고 1로 이루어진 배열을 만든다 예약 기록들을 보며 배열에서 이미 예약된 부분은 0으로 변경한다 방 별 예약가능한 range를 찾는다 (배열의 1인 부분) Object객체를 key로 오름차순 정렬하기 Object.keys(객체).sort().reduce((newObj, curr) => { newObj[curr] = 객체[curr]; return newObj; }, {}); 전체코드 const readline = require('readline'); const rl = readline.createInterface({ input : process.stdin, output : process... 2024. 1. 30.