끄적끄적 코딩
[Javascript] 프로그래머스 - 광물 캐기
알고리즘 2025. 1. 16. 21:45

문제 설명마인은 곡괭이로 광산에서 광물을 캐는 작업을 최소한의 피로도로 수행하려고 합니다. 각 곡괭이는 다이아몬드, 철, 돌로 구성되어 있으며, 광물을 캐는 과정에서 곡괭이의 종류에 따라 피로도가 다르게 소모됩니다.곡괭이별 광물 채굴 시 피로도는 다음과 같습니다:곡괭이 종류다이아몬드철돌다이아몬드111철511돌2551각 곡괭이는 종류에 관계없이 광물 5개를 채굴하면 사용할 수 없게 되며, 작업은 다음 규칙을 따릅니다:사용할 수 있는 곡괭이 중 하나를 선택하여 광물을 캡니다.한 번 사용한 곡괭이는 5개를 연속으로 채굴한 뒤 더 사용할 수 없습니다.광물은 주어진 순서대로만 캘 수 있습니다.모든 광물을 캐거나 사용할 곡괭이가 없을 때까지 작업이 진행됩니다.마인이 갖고 있는 곡괭이의 개수를 나타내는 배열 pick..

[Javascript] 프로그래머스 - 빛의 경로 사이클
알고리즘 2025. 1. 15. 23:12

문제 설명각 칸마다 S, L, 또는 R가 써져 있는 격자가 있습니다. 당신은 이 격자에서 빛을 쏘고자 합니다. 이 격자의 각 칸에는 다음과 같은 특이한 성질이 있습니다.빛이 "S"가 써진 칸에 도달한 경우, 직진합니다.빛이 "L"이 써진 칸에 도달한 경우, 좌회전을 합니다.빛이 "R"이 써진 칸에 도달한 경우, 우회전을 합니다.빛이 격자의 끝을 넘어갈 경우, 반대쪽 끝으로 다시 돌아옵니다. 예를 들어, 빛이 1행에서 행이 줄어드는 방향으로 이동할 경우, 같은 열의 반대쪽 끝 행으로 다시 돌아옵니다.당신은 이 격자 내에서 빛이 이동할 수 있는 경로 사이클이 몇 개 있고, 각 사이클의 길이가 얼마인지 알고 싶습니다. 경로 사이클이란, 빛이 이동하는 순환 경로를 의미합니다.제한 사항격자의 크기: 1 ≤ gri..

[Javascript] 프로그래머스 - 혼자서 하는 틱택토
알고리즘 2025. 1. 14. 23:15

문제 설명틱택토는 두 사람이 번갈아가며 진행하는 게임입니다. 현재 게임판 상태가 유효한지 판단하여, 규칙에 맞는 상황이면 1, 그렇지 않으면 0을 반환하세요.제한 사항보드 크기: 3×3보드 구성:"O": 선공"X": 후공".": 빈칸각 칸의 상태는 문자열 배열 board로 제공됩니다.board[i][j]는 i+1행 j+1열의 상태를 나타냅니다.해결 방법알고리즘: 구현개수 확인O와 X의 개수를 세어 올바른 턴 순서를 확인합니다.빙고 확인행, 열, 대각선에서 동일한 문자가 3개 연속으로 나오는지 확인합니다.규칙 검증O와 X가 동시에 빙고일 수 없음.턴 순서에 따라 각 플레이어는 자신의 차례에만 빙고 가능.결과 반환규칙을 만족하면 1, 그렇지 않으면 0을 반환합니다.구현 코드function solution(b..

[Javascript] 프로그래머스 - 리코쳇 로봇
알고리즘 2025. 1. 13. 21:34

문제 설명리코쳇 로봇 보드게임에서 말이 목표 위치에 도달하기 위한 최소 이동 횟수를 구하세요.말은 상, 하, 좌, 우로 이동하며, 장애물 또는 게임판 가장자리에 부딪힐 때까지 미끄러집니다.제한 사항보드 크기: 3 ≤ n, m ≤ 100"R"(로봇 시작 위치), "G"(목표 지점)은 각각 한 번 등장합니다."."(빈 공간), "D"(장애물)해결 방법알고리즘: DPBFS를 통한 탐색 진행시작 위치에서 목표 지점까지 이동하며 최소 이동 횟수를 기록합니다.DP 배열 활용각 위치에서의 최소 이동 횟수를 dp[y][x]에 저장하며 경로를 최적화합니다.이동 구현현재 위치에서 상, 하, 좌, 우로 부딪힐 때까지 이동 후, 새로운 위치에서 BFS 탐색을 이어갑니다.시간 복잡도BFS 탐색: O(n×m)모든 칸을 한 번씩 ..

[Javascript] 프로그래머스 - 석유 시추
알고리즘 2025. 1. 12. 22:11

문제 설명세로 길이가 n, 가로 길이가 m인 격자 모양의 땅 속에 석유가 발견되었습니다. 석유는 여러 덩어리로 나누어져 있으며, 상하좌우로 연결된 석유는 하나의 덩어리로 간주합니다.조건:시추관은 열 하나를 관통하는 형태로 설치됩니다.열과 열 사이에 시추관을 뚫을 수는 없습니다.시추관이 지나는 석유 덩어리의 크기를 모두 합한 값이 해당 위치에서 뽑을 수 있는 석유량입니다.주어진 격자 모양의 땅 정보(land)에서 시추관 하나를 설치해 가장 많은 석유를 뽑을 수 있는 위치를 구하세요.제한사항1 ≤ land의 길이 = n ≤ 5001 ≤ land[i]의 길이 = m ≤ 500land[i][j]는 0(빈 땅) 또는 1(석유)해결 방법알고리즘: DFS (깊이 우선 탐색)석유 덩어리 그룹화DFS를 사용하여 연결된 ..

[Javascript] 프로그래머스 - n^2 배열 자르기
알고리즘 2025. 1. 11. 21:44

문제 설명정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만듭니다.n행 n열 크기의 비어있는 2차원 배열을 만듭니다.i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다.1행 1열부터 i행 i열까지의 영역 내의 모든 빈 칸을 숫자 i로 채웁니다.1행, 2행, ..., n행을 잘라내어 모두 이어붙인 새로운 1차원 배열을 만듭니다.새로운 1차원 배열을 arr이라 할 때, arr[left], arr[left+1], ..., arr[right]만 남기고 나머지는 지웁니다.정수 n, left, right가 매개변수로 주어졌을 때, 주어진 과정대로 만들어진 1차원 배열을 return 하도록 solution 함수를 완성해주세요.제한사항1 ≤ n ≤ 10^70 ≤ lef..

[Javascript] 프로그래머스 - 충돌위험 찾기
알고리즘 2025. 1. 10. 21:11

문제 설명물류 센터에는 2차원 좌표 (r, c)로 표시된 n개의 포인트가 있으며, 각 포인트는 1부터 n까지 번호가 매겨져 있습니다.로봇 x대는 각각 정해진 m개의 포인트로 구성된 경로를 따라 이동합니다. 모든 로봇은 동시에 출발하며, 1초마다 r 또는 c 좌표를 1씩 이동해 최단 경로로 다음 포인트로 이동합니다.여러 로봇이 같은 좌표에 동시에 도달하면 충돌 위험 상황으로 간주합니다. 모든 로봇이 경로를 완주할 때까지 발생하는 위험 상황의 총 횟수를 구하세요.제한사항2 ≤ n ≤ 1001 ≤ r, c ≤ 1002 ≤ x ≤ 1002 ≤ m ≤ 100같은 좌표에 여러 포인트가 존재하지 않음.경로에 동일 포인트가 연속으로 등장하지 않음.문제 설명어떤 물류 센터는 로봇을 이용한 자동 운송 시스템을 운영합니다...

[Javascript] 백준 24508번 나도리팡
알고리즘 2025. 1. 9. 02:10

문제 설명N개의 바구니에 나도리가 담겨 있고, 각 바구니에는 Ai​ 마리의 나도리가 있습니다. 한 바구니에 K 마리가 모이면 터지는 저주에 걸렸습니다.나도리를 다른 바구니로 옮기는 작업을 최대 T 회까지 허용하여 모든 나도리가 터질 수 있는지 판단하세요.제한사항2 ≤ N, K ≤ 10^50 ≤ T ≤ 10^90 ≤ A1, A2, ⋯ , AN 해결 방법알고리즘: 탐욕법 (Greedy)모든 나도리의 합을 계산합니다.각 바구니의 나도리 수를 내림차순으로 정렬합니다.K 마리씩 채워지는 그룹을 생성하며 초과된 나도리의 수를 누적합니다.T 이내로 옮길 수 있는지 확인 후 결과를 출력합니다.시간 복잡도정렬: O(NlogN)탐색: O(N)전체 시간 복잡도: O(NlogN)구현 코드const readline = requ..

검색 태그