본문 바로가기

전체 글178

[Softeer] 출퇴근길 JS (역방향 간선 그래프, dfs) https://softeer.ai/practice/6248 출근길, 퇴근길에 모두 포함되는 정점을 구해야한다 밑의 조건을 모두 만족하는 경우 출퇴근길에 모두 존재한다고 볼 수 있다. 출근길 (집이랑 연결된) && 출근길 (회사와 연결된) && 퇴근길 (회사와 연결된) && 퇴근길 (집과 연결된) 출근길 집을 시작으로 dfs를 돌려 집에서 이동가능한 모든 정점을 구할 수 있다. fromHome 회사에서 역방향으로 dfs를 돌리면 회사에 도달 할 수 있는 정점을 구할 수 있다 toWork 퇴근길 회사를 시작으로 dfs를 돌려 회사에서 이동가능한 모든 정점을 구한다. fromWork 역방향 간선 상, 집에서 dfs를 돌려 집에 도달 할 수 있는 정점을 구한다 toHome adj, adjR를 통해 한 정점에서 .. 2024. 2. 1.
[Softeer] 사물인식 최소 면적 산출 프로그램 JS https://softeer.ai/practice/6277 당신은 다양한 입력 값들로 인식된 사물에 대해 최소 면적을 계산해보는 테스트를 하는 중이다. 이번 테스트의 조건은 다음과 같다. 레이더를 통해 인식된 정보의 입력값은 평면에 N개의 점으로 주어진다. 각각의 점들은 총 K개의 색깔 중 하나를 가지고 있다. 각 점의 색깔은 {1, 2, …, K} 중의 한 정수로 표현된다. 당신은 입력값으로 주어진 K개의 색깔 {1, 2, …, K}에 대해 해당 색깔을 가지는 점들을 적어도 하나씩 포함하는 사물 중 넓이가 가장 작은 것을 찾아서 그 넓이를 출력하는 프로그램을 작성하려고 한다. 이때, 각 점을 포함한 사물은 반드시 직사각형으로 인식된다. 여기서 사물로 인식되는 직사각형은 네 변이 모두 수평 혹은 수직인 .. 2024. 2. 1.
[Softeer] 로봇이 지나간 경로 JS https://softeer.ai/practice/6275 현대자동차그룹에 입사하여 로봇 연구 개발 부서에 막 입사한 당신은 아래와 같은 기능을 하는 간단한 로봇의 사용법을 전달받았다. 로봇은 H행 W열의 2차원 격자판 위를 돌아다닌다. 격자판의 각 칸은 정사각형 모양이며, 로봇은 격자판의 칸 하나를 차지한다. 로봇은 오른쪽(동), 왼쪽(서), 아래(남), 위(북) 중 한 방향을 바라볼 수 있다. 로봇의 이동을 제어하는 명령어는 다음과 같이 세 가지이다. * L: 로봇이 왼쪽으로 90도 회전하며, 이에 따라 바라보는 방향이 바뀐다. * R: 로봇이 오른쪽으로 90도 회전하며, 이에 따라 바라보는 방향이 바뀐다. * A: 로봇이 바라보는 방향으로 두 칸 전진한다. 단, 이 과정에서 로봇이 격자판 바깥을 나.. 2024. 2. 1.
[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.