본문 바로가기

자바스크립트41

3055 탈출 (자바스크립트) 문제사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제일 친한 친구인 비버의 굴로 가능한 빨리 도망가 홍수를 피하려고 한다.티떱숲의 지도는 R행 C열로 이루어져 있다. 비어있는 곳은 '.'로 표시되어 있고, 물이 차있는 지역은 '*', 돌은 'X'로 표시되어 있다. 비버의 굴은 'D'로, 고슴도치의 위치는 'S'로 나타내어져 있다.매 분마다 고슴도치는 현재 있는 칸과 인접한 네 칸 중 하나로 이동할 수 있다. (위, 아래, 오른쪽, 왼쪽) 물도 매 분마다 비어있는 칸으로 확장한다. 물이 있는 칸과 인접해있는 비어있는 칸(적어도 한 변을 공유)은 물이 차게 된다. 물과 고.. 2024. 12. 24.
4179 불! 문제지훈이는 미로에서 일을 한다. 지훈이를 미로에서 탈출하도록 도와주자!미로에서의 지훈이의 위치와 불이 붙은 위치를 감안해서 지훈이가 불에 타기전에 탈출할 수 있는지의 여부, 그리고 얼마나 빨리 탈출할 수 있는지를 결정해야한다.지훈이와 불은 매 분마다 한칸씩 수평또는 수직으로(비스듬하게 이동하지 않는다) 이동한다.불은 각 지점에서 네 방향으로 확산된다.지훈이는 미로의 가장자리에 접한 공간에서 탈출할 수 있다.지훈이와 불은 벽이 있는 공간은 통과하지 못한다.입력입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다.다음 입력으로 R줄동안 각각의 미로 행이 주어진다.각각의 문자들은 다음을 뜻한다.#: 벽.: 지나갈.. 2024. 12. 23.
2294 동전2 (자바스크립트) 문제n가지 종류의 동전이 있다. 이 동전들을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그러면서 동전의 개수가 최소가 되도록 하려고 한다. 각각의 동전은 몇 개라도 사용할 수 있다.입력첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주어질 수도 있다.출력첫째 줄에 사용한 동전의 최소 개수를 출력한다. 불가능한 경우에는 -1을 출력한다.=====문제 분석동전이 1원 5원 12원이 있을 때, 15원을 만드는 방법은 1. 1원 15개 2. 5원 3개3. 5원 2개 1원 5개 3. 12원 1개, 1원 3개등등의 방법이 있.. 2024. 12. 21.
16947 지하철 2호선 (자바스크립트) 문제서울 지하철 2호선은 다음과 같이 생겼다.지하철 2호선에는 51개의 역이 있고, 역과 역 사이를 연결하는 구간이 51개 있다. 즉, 정점이 51개이고, 양방향 간선이 51개인 그래프로 나타낼 수 있다. 2호선은 순환선 1개와 2개의 지선으로 이루어져 있다. 한 역에서 출발해서 계속 가면 다시 출발한 역으로 돌아올 수 있는 노선을 순환선이라고 한다. 지선은 순환선에 속하는 한 역에서 시작하는 트리 형태의 노선이다.두 역(정점) 사이의 거리는 지나야 하는 구간(간선)의 개수이다. 역 A와 순환선 사이의 거리는 A와 순환선에 속하는 역 사이의 거리 중 최솟값이다.지하철 2호선과 같은 형태의 노선도가 주어졌을 때, 각 역과 순환선 사이의 거리를 구해보자.입력첫째 줄에 역의 개수 N(3 ≤ N ≤ 3,000).. 2024. 12. 20.
16929 Two Dots https://www.acmicpc.net/problem/16929문제Two Dots는 Playdots, Inc.에서 만든 게임이다. 게임의 기초 단계는 크기가 N×M인 게임판 위에서 진행된다.각각의 칸은 색이 칠해진 공이 하나씩 있다. 이 게임의 핵심은 같은 색으로 이루어진 사이클을 찾는 것이다.다음은 위의 게임판에서 만들 수 있는 사이클의 예시이다.점 k개 d1, d2, ..., dk로 이루어진 사이클의 정의는 아래와 같다.모든 k개의 점은 서로 다르다. k는 4보다 크거나 같다.모든 점의 색은 같다.모든 1 ≤ i ≤ k-1에 대해서, di와 di+1은 인접하다. 또, dk와 d1도 인접해야 한다. 두 점이 인접하다는 것은 각각의 점이 들어있는 칸이 변을 공유한다는 의미이다.게임판의 상태가 주어졌을.. 2024. 12. 19.
16964 DFS 스페셜 저지 https://www.acmicpc.net/problem/16964문제BOJ에서 정답이 여러가지인 경우에는 스페셜 저지를 사용한다. 스페셜 저지는 유저가 출력한 답을 검증하는 코드를 통해서 정답 유무를 결정하는 방식이다. 오늘은 스페셜 저지 코드를 하나 만들어보려고 한다.정점의 개수가 N이고, 정점에 1부터 N까지 번호가 매겨져있는 양방향 그래프가 있을 때, DFS 알고리즘은 다음과 같은 형태로 이루어져 있다. 이 문제에서 시작 정점은 1이기 때문에 가장 처음에 호출하는 함수는 dfs(1)이다. DFS 방문 순서는 dfs함수에서 // x를 방문 이라고 적힌 곳에 도착한 정점 번호를 순서대로 나열한 것이다.트리가 주어졌을 때, 올바른 DFS 방문 순서인지 구해보자.입력첫째 줄에 정점의 수 N(2 ≤ N ≤.. 2024. 12. 19.
17425 약수의 합 (node.js) https://www.acmicpc.net/problem/17425문제두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더한 값이고, f(A)로 표현한다. x보다 작거나 같은 모든 자연수 y의 f(y)값을 더한 값은 g(x)로 표현한다.자연수 N이 주어졌을 때, g(N)을 구해보자.입력첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 100,000)가 주어진다. 둘째 줄부터 테스트 케이스가 한 줄에 하나씩 주어지며 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력각각의 테스트 케이스마다, 한 줄에 하나.. 2024. 12. 16.
[lv3]코딩 테스트 공부 (자바스크립트) https://school.programmers.co.kr/learn/courses/30/lessons/118668?language=javascript 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 처음 생각해 본 경우의 수 알고력 코딩력이 문제에서 요하는 알고 코딩력보다 크다면 풀어버리기요하는 것보다 작다면 1시간 당 코딩 또는 알고력이 +1 이니까 (필요 코딩력 - 현재 코딩력),(필요 알고력-현재 알고력) 풀었던 문제들에 대해 문제 돌면서 알고 코딩력 얻기 위의 경우에서의 에러 사항은 문제를 풀어서 코딩/알고력을 얻다가 시간 당 1씩 얻는 경우도 있고.. 2024. 5. 22.
빛의 경로 사이클 https://school.programmers.co.kr/learn/courses/30/lessons/86052?language=javascript 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr사이클의 존재 유무와 그것의 길이는 이미 지나쳤던 경로를 한 번 더 지나는지를 판별하면 알 수 있음.처음에 해맸던 점은 이것을 0,0 지점에 위치한 노드만 봐야하는지와 모든 지점을 거쳐야지만 사이클이 되는지였다.결과적으로 한 지점에서 출발하여 모든 지점을 지나칠 필요는 없으며, (0,0)이 아니더라도 사이클을 찾으면 되느 것이었다.즉, 반복문을 통하여 (0,0)~(n.. 2024. 5. 21.