본문 바로가기
  • 살짝 구운 김 유나

Algorithm64

[Lv.2] 양궁 대회 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/92342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 재귀 DFS로 풀었고, 1. 라이언이 화살을 쏘는 경우 (라이언이 점수 획득) 2. 라이언이 화살을 쏘지 않는 경우 (어피치가 점수 획득 / 둘 다 쏘지 않음) 로 나눠서 풀었다. 과녁의 끝에 도달했을 때에는, 라이언과 어피치의 점수차가 현재의 최댓값보다 큰 경우에만 최대 점수 차이, 라이언의 과녁판을 갱신해주었다. !!! 점수가 가장 낮은 과녁판부터 살펴봐야 한다..!!! 코드 fun.. 2023. 3. 28.
[Lv.2] 호텔 대실 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - 문자열 시간을 숫자로 바꿔준다. - 체크인 시간, 체크아웃 시간 + 청소시간을 저장해둔다. - 입실 시간이 빠른 순서대로 정렬한다. - room 배열을 선언한 후, 순회하면서 체크인 하려는 시간이 어떤 방의 체크아웃+청소시간보다 늦은 경우 입실시키고 그렇지 않은 경우에는 새로운 방을 생성(push)한다. - 사용한 방의 개수(room.length)를 출력한다. 코드 function.. 2023. 3. 24.
[Lv.2] 프린터 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - shift, push를 이용해서 큐로 해결하는 문제이다. - 각 문서의 인덱스를 저장하는 배열을 선언해서 우선순위와 함께 관리한다. - 그 이외에는 문제에서 요구하는대로 코드를 작성하면 된다. 코드 function solution(priorities, location) { var answer = 0; // 각 문서의 인덱스를 저장하는 배열 map let map = []; for (l.. 2023. 3. 21.
[Lv.2] 피로도 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 모든 경우를 고려해야 하기 때문에 깊이 우선 탐색을 적용했다. 근데 이제 혼자서 생각해보지는 않은,, 코드 function solution(k, dungeons) { var max = 0; const len = dungeons.length; let visited = new Array(len).fill(false); const DFS = (cur, power, depth) => { // .. 2023. 3. 18.
[Lv.2] 이진변환 반복하기 -JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 function solution(str) { let round = 0; // 회차 let zeroCnt = 0; // 제거한 0의 개수 // s가 '1'이 될 때까지 반복 while (str !== "1") { round++; // 회차 + 1 let oneCnt = 0; // 0을 제거한뒤 남아있는 1의 갯수 == 남은 문자열의 길이 for (let s of str) { if (s =.. 2023. 3. 12.
[Lv.3] 여행 경로 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 function solution(tickets) { var answer = []; const len = tickets.length; const visited = new Array(len).fill(false); // 티켓 정렬 -> 여러 경로가 있을 때 첫번째 나온 결과를 정답으로 선택 tickets.sort(); function dfs(str, path, depth) { // answ.. 2023. 3. 11.
[Lv.3] 징검다리 건너기 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 친구들 수를 하나씩 늘려나가는 방법으로 풀다가 시간 초과가 나서 다른 코드를 참고했다. 이분탐색으로 풀어야하는 문제! 숫자 범위가 크게 주어지는 경우 높은 확률로 이분탐색 문제라고 한다.. 코드 function solution(stones, k) { let min = 1; let max = 200000000; while (min > 0; // 2로 나누고 소숫점이하 버림 const co.. 2023. 3. 7.
[Lv.3] 기지국 설치 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12979 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1. stations을 순회하면서 기지국의 전파가 닿지 않는 구간을 차례대로 찾는다. 2. 구간을 커버하는 기지국의 최소 개수를 answer에 누적해서 더한다. 3. 마지막으로 커버된 지역의 인덱스부터 맨 마지막 지역까지도 빠짐없이 커버해준다. 코드 function solution(n, stations, w) { var answer = 0; const len = stations.leng.. 2023. 3. 6.
[Lv.2] 최솟값 만들기 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12941?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 곱의 누적값이 가장 작은 경우는 가장 작은 수 * 가장 큰 수를 곱해서 더해진 값이다. A는 오름차순, B는 내림차순으로 정렬하여 index 순서대로 곱한 값의 누적합을 구하면 된다. 코드 function solution(A, B) { var answer = 0; const len = A.length; const sortedA = A.sort((a, .. 2023. 3. 5.
[Lv.3] 네트워크 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 function solution(n, computers) { var network = 0; const visited = new Array(n).fill(false); function DFS(index) { visited[index] = true; // 방문 처리 for (let i = 0; i < n; i++) { // 기준이 되는 인덱스와 연결되어 있고, 방문한 적이 없는 노드라면 i.. 2023. 2. 28.