목록프로그래머스 (167)
안녕하세요
석유 시추 (180) 문제 보러 가기 문제 조건 세로길이가 n 가로길이가 m인 격자 석유는 여러 덩어리 수직으로 단 하나만 뚫을 수 있을 때 많은 석유를 뽑을 수 있는 시추관의 위치 찾기 시추관이 석유 덩어리의 일부를 지나면 해당 덩어리에 속한 모든 석유를 뽑을 수 있습니다. 문제 풀이(1) 효율성 실패 function solution(land) { const n = land[0].length; // 세로 n const m = land.length; // 가로 m const tries = Array(n).fill(0); let count = 0; for (let j = 0; j < n; j++) { const currentLand = JSON.parse(JSON.stringify(land)); for (..
PCCP 기출 문제 (25) 1번 문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 조건 확인 // 붕대감기 // t초 동안 붕대를 감으면서 1초마다 x만큼의 체력을 회복 // t초 연속으로 붕대를 감는 데 성공한다면 y만큼의 체력을 추가로 회복 // 붕대 감기 연속 성공 // 시전시간만큼 연속으로 성공하면 (1+추가 회복량)만큼 회복 // 공격 // 기술을 쓰는 도중 몬스터에게 공격을 당하면 기술이 취소 // 공격을 당하는 순간에는 체력을 회복할 수 없습니다 // 연속 성공 시간이 0으로 초기화 // 체력 // 최대 체력 // 현재 체력..
숫자 변환하기 문제 보기 문제 풀이 1 (실패) DFS 첫 번째로 DFS(깊이 우선 탐색)를 이용하여 재귀적인 방식으로 문제를 해결하려 했습니다. 비효율적인 방법이라는 것은 인지하고 있지만, 일단 구현하기 위해서 시도한 방법입니다. y를 만들 수 있는 가능한 모든 경우의 수를 저장하고, 그 중에서 가장 작은 값을 찾아 반환하기로 했습니다. 그러나 이 방식은 n=1 y=1,000,000인 경우만 생각해보아도 경우의 수가 너무 많습니다. 결과는 예상대로 스택 오버플로우 에러가 발생합니다. 이미 계산된 값인 경우에는 종료시켜주기 위해서 Map 객체로 값을 메모하기도 했지만 어림도 없었습니다. function solution(x, y, n) { let result = []; const bfs = (num, co..
투 포인터(Two Pointers) 정렬된 배열에서 시작와 끝을 가리키는 두 개의 포인터를 이용하여 부분 배열을 탐색할 때 활용된다. https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 비내림차순으로 정렬된 수열이 주어질 때, 다음 조건을 만족하는 부분 수열을 찾으려고 합니다. 기존 수열에서 임의의 두 인덱스의 원소와 그 사이의 원소를 모두 포함하는 부분 수열이어야 합니다. 부분 수열의 합은 k입니다. 합이 k인 부분 수열이 여러 개인 경우 길이..