반응형

Coding Problem 140

[프로그래머스] 가장 큰 정사각형 찾기

문제가장 큰 정사각형 찾기https://school.programmers.co.kr/learn/courses/30/lessons/12905  예시 코드function solution(board) { const n = board.length; const m = board[0].length; const dp = Array.from({ length: n + 1 }, () => Array(m + 1).fill(0)); let maxSide = 0; for (let i = 1; i   풀이표에서 1로 이루어진 가장 큰 정사각형의 넓이를 구하는 문제입니다.dp를 사용해서 풀 수 있습니다. dp[i][j]는 (i, j)를 우하단 꼭짓점으로 하는 정사각형 중 가장 큰 정사각형 한 변의 길이입니다.(i, j)의..

Coding Problem/DP 2024.11.23

[프로그래머스] 숫자 카드 나누기

문제숫자 카드 나누기https://school.programmers.co.kr/learn/courses/30/lessons/135807  예시 코드function solution(arrayA, arrayB) { let gcdA = arrayA[0]; for (let i = 1; i  풀이다음 조건을 만족하는 가장 큰 양의 정수 a를 찾는 문제입니다.철수가 가진 카드들에 적힌 모든 숫자를 나눌 수 있고 영희가 가진 카드들에 적힌 모든 숫자들 중 하나도 나눌 수 없는 양의 정수 a영희가 가진 카드들에 적힌 모든 숫자를 나눌 수 있고, 철수가 가진 카드들에 적힌 모든 숫자들 중 하나도 나눌 수 없는 양의 정수 a 각 배열의 최대공약수를 구한 후 조건을 만족하는 가장 큰 수를 반환합니다.만약 없다면 0을 반..

Coding Problem 2024.11.19

[프로그래머스] 카카오 - 거리두기 확인하기

문제2021 카카오 채용연계형 인턴십 - 거리두기 확인하기  https://school.programmers.co.kr/learn/courses/30/lessons/81302 예시 코드class Queue { constructor() { this.inbox = []; this.outbox = []; } enqueue(data) { this.inbox.push(data); } dequeue() { if (!this.outbox.length) { while (this.inbox.length) { this.outbox.push(this.inbox.pop()); } } return this.outbox.pop(); } size() { ..

Coding Problem 2024.11.16

[프로그래머스] 단속카메라

문제단속카메라https://school.programmers.co.kr/learn/courses/30/lessons/42884  예시 코드function solution(routes) { routes.sort((a, b) => a[0] - b[0]); let camCnt = 0; let lastCamPos = -Infinity; for (const [start, end] of routes) { if (start > lastCamPos) { camCnt++; lastCamPos = end; } else lastCamPos = Math.min(lastCamPos, end); } return camCnt;} 풀이모든 차량을 커버할 수 있는, 최소한의 단속 카메라 개수를 ..

[프로그래머스] 등굣길

문제등굣길https://school.programmers.co.kr/learn/courses/30/lessons/42898  예시 코드function solution(m, n, puddles) { const board = Array.from({ length: m + 1 }, () => Array(n + 1).fill(0)); for (let i = 0; i Array(n + 1).fill(0)); dp[0][1] = 1; const MOD = 1000000007; const PUDDLE = 1; for (let i = 1; i  풀이목적지까지 도달할 수 있는 최단 경로의 수를 구하는 문제입니다.2차원 좌표 위를 움직이고, 이동 방향이 오른쪽 또는 아래로 한정되어 있어 DP를 사용할 수 있습니..

Coding Problem 2024.11.12

[프로그래머스] 데브매칭 - 다단계 칫솔 판매

문제2021 Dev-Matching: 웹 백엔드 개발자(상반기) - 다단계 칫솔 판매https://school.programmers.co.kr/learn/courses/30/lessons/77486  예시 코드class Member { #name; #referral; #earning; constructor(name, referral) { this.#name = name; this.#referral = referral; this.#earning = 0; } getName() { return this.#name; } getReferral() { return this.#referral; } getEarning() { return this.#earning; }..

Coding Problem 2024.11.10

[프로그래머스] 카카오 - 징검다리 건너기

문제2019 카카오 개발자 겨울 인턴십 - 징검다리 건너기https://school.programmers.co.kr/learn/courses/30/lessons/64062   풀이 첫 번째 시도단순히 건넌 사람의 수를 0부터 시작해서 징검다리를 순회하며 무사히 건널 수 있으면 카운트를 하나씩 증가시켰고, 이를 실패할 때까지 반복했습니다.그러나 일부 테스트케이스에서 시간초과로 실패했습니다.function solution(stones, k) { let answer = 0; while(true) { let pos = 0; let jump = 0; while(pos k) return answer; if(stones[pos] > ..

Coding Problem 2024.11.08

[BOJ 12738] 가장 긴 증가하는 부분 수열 3

문제가장 긴 증가하는 부분 수열 3https://www.acmicpc.net/problem/12738  풀이설명LIS(가장 긴 증가하는 부분 수열)의 길이를 구하는 문제입니다. 이분탐색을 이용해 해결할 수 있습니다.수열을 순회하면서 이분탐색을 이용해 해당 숫자를 lis의 적절한 위치에 넣으면 됩니다. 예시 코드function solution() { const N = +input(); const A = input().split(" ").map(Number); const lis = [A[0]]; for (let i = 1; i lis[lis.length - 1]) lis.push(A[i]); else { let low = 0, high = lis.length - 1; ..

Coding Problem 2024.10.22