문제https://www.acmicpc.net/problem/1926 풀이이 문제는 BFS 알고리즘을 이용해 그래프 탐색을 진행해야 한다. 그림은 연결되어 있기 때문에 연결된 노드를 탐색하며 방문했음을 기록해야합니다. 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' ').map(Number));const [y, x] = input.shift();const map = input;const check = Array.from({ length: y }, () ..
코딩 테스트
문제https://school.programmers.co.kr/learn/courses/30/lessons/42861# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 해당 문제는 크루스칼 알고리즘을 이용해 최단 신장 트리를 구하며 풀이하는 문제이다.크루스칼 알고리즘을 이 문제를 통해 처음 알게되었는데, BFS 그래프 탐색인데 cost를 오름차순으로 정렬해 부모를 비교해 처리하는 알고리즘이라 생각한다. 코드const find = (parent, x) => { if (parent[x] === x) { return x; } return parent[x]..
문제https://school.programmers.co.kr/learn/courses/30/lessons/ 풀이해당 문제는 BFS를 이용한 다익스트라다 문제이며, 처음 문제를 풀때는 주어지는 sources별로 마지막 도착지인 destination까지의 거리를 측정했었다. 하지만 이렇게 풀게 되면 시간 초과가 발생한다.function solution(n, roads, sources, destination) { const answer = []; const road = Array.from({length: n + 1}, () => []); const level = Array.from({length: n + 1}, () => Infinity); for(let i = 0; i fal..
문제https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이해당 문제는 BFS 알고리즘을 이용해 그래프탐색을 진행하는 문제로써 인접한 모든 노드의 탐색 및 거리 측정을 진행해야 한다. 코드function solution(n, edge) { const visited = Array.from({ length: n + 1 }, () => false); const level = Array.from({ length: n + 1 }, () => 0); con..
문제https://school.programmers.co.kr/learn/courses/30/lessons/161988# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이이 문제를 보고 펄스 수열이라는 말이 눈에 거슬렸다. -1과 1을 번갈아가며 곱셈되는 동작을.... 펄스 동작이 1부터 곱해지냐 아니면 -1부터 곱해지냐는 정해져 있는 것이다. 첫번째 풀이는 전부 1 혹은 -1 씩 번갈아 가며 요소들에 곱해준 배열을 구한 뒤 누적합을 구했었지만, 이렇게 풀이한 경우 부분 수열의 합을 구할 수 없기에 통과하지 못했다.function solution(sequ..
문제https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이이 문제는 이분탐색으로 풀이해야한다. 건너야 하는 돌들을 탐색해야 하나 생각했지만, 사실 건널 수 있는 인원수를 이분탐색 해야한다. 인원수는 최소 1명, 최대 2억명이다. 이유는 바위의 내구성을 나타내는 숫자의 범위는 1 ~ 2억이기 때문이다. 최소값이 최대값 보다 적을 때까지 탐색을 진행한다. 이분탐색을 진행하며 중간값을 각 바위의 숫자에 빼준다. 뺀 결과값이 0이하이면 중간값의 인원수만큼..