본문 바로가기

Coding Test203

[Programmers] Lv 2. 무인도 여행 https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(maps) { const answer = [], [row, col] = [maps.length, maps[0].length], [dirX, dirY] = [[0, 0, -1, 1], [-1, 1, 0, 0]], visited = Array.from(Array(row),() => new Array(col).fill(false)); const dfs = (x, y) .. 2023. 3. 28.
[Programmers] (2020 KAKAO BLIND RECRUITMENT) Lv 2. 문자열 압축 https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(s) { let answer = s.length; for (let i = 1; i 1 ? cnt : "")}${word}`; (cnt = 1), (word = temp); if (idx >= s.length) str += temp; } } if (cnt > 1) str += `${cnt}${word}`; answer = Math.min(str.length, answ.. 2023. 3. 26.
[Programmers] (Summer/Winter Coding(2019)) Lv 2. 멀쩡한 사각형 https://school.programmers.co.kr/learn/courses/30/lessons/62048 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 직사각형의 대각선이 가로지르는 사각형들은 일정한 패턴이 반복된다. 이 패턴이 반복되는 횟수가 가로 세로의 GCD -> GCD(12, 8) = 4 - 이 패턴의 가로 세로 길이가 각각 w / gcd, h / gcd 이다. -> 8 / 4 = 2, 12 / 4 = 3 - 대각선이 지나는 칸은 한줄에 1칸 ~ 2칸 존재할 수 있다. - 대각선이므로 세로줄기준 최소 1칸은 차지할수 밖에 없다. -> .. 2023. 3. 24.
[Programmers] (2021 카카오 채용연계형 인턴십) Lv 2. 거리두기 확인하기 https://school.programmers.co.kr/learn/courses/30/lessons/81302#fnref1 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(places) { return places.reduce((acc, data) => { // 굳이 완전 탐색을 써서 모든 경로를 찾아 itv를 비교하는 것보단, // itv가 2인 데이터인것들만 추출해서 그 사이 경로에 X가 있는지 체크하는 게 더 효율적이라 판단. const peoples = []; // P인 데이터만 담아둘 배열 data.forEach.. 2023. 3. 23.
[Programmers] Lv 2. 가장 큰 정사각형 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/12905 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(board) { return board.reduce((acc, rows, i, board) => { if (rows.length { if (!j) return; if (column) { board[i][j] = Math.min(board[i - 1][j - 1], board[i - 1][j], board[i][j - 1]) + 1; acc = Math.max(acc.. 2023. 3. 20.
[Programmers] (완전탐색) Lv 2. 전력망을 둘로 나누기 https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr BFS 이용 const bfs = (graph, pivot, visited, vistedDuplication) => { const queue = [pivot]; let cnt = 0; while (queue.length) { const dest = queue.shift(); if (vistedDuplication[dest]) return Infinity; (visited[dest] = true),.. 2023. 3. 17.
[Programmers] (Summer/Winter Coding(~2018)) Lv 2. 배달 https://school.programmers.co.kr/learn/courses/30/lessons/12978 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr DFS(재귀)로 풀었지만, 32번 테스트가 시간 초과 실패. function solution(N, road, K) { const graph = road.reduce((obj, [p1, p2, t]) => { (obj[p1] = obj[p1] || {}), (obj[p2] = obj[p2] || {}); obj[p1][p2] = obj[p2][p1] = Math.min(obj[p1][p2] ? ob.. 2023. 3. 16.
[Programmers] (2021 Dev-Matching: 웹 백엔드 개발자(상반기)) Lv 2. 행렬 테두리 회전하기 https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(rows, columns, queries) { const arr = [...Array(rows)].map((v, r) => [...Array(columns)].map((v, c) => r * columns + (c + 1)) ); // 먼저 2차원 배열에 값을 초기화한다. return queries.reduce((acc, querie) => { const [x1, .. 2023. 3. 15.
[Programmers] (2020 카카오 인턴십) Lv 2. 수식 최대화 https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr // 탐색을 통해 ["+", "-", "*"] 경우의 수 추출 const permutation = (operation, visited, priority, max, expression) => { if (operation.length === visited.filter((o) => o).length) { // 총 방문이 연산자 수 만큼 될 경우, const [tempExp, tempPrior] = [[.. 2023. 3. 13.
[Programmers] Lv 2. 택배상자 https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(order) { let [result, box] = [0, 1]; const stack = []; for (find of order) { while (true) { if (box === find) { ++box; break; } else if (stack.at(-1) === find) { stack.pop(); break; } else { if (box < ord.. 2023. 3. 13.