본문 바로가기

Level 36

[JavaScript] 프로그래머스: n + 1 카드 게임 난이도 : Level 3알고리즘 유형 : 그리드문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/258707  문제 풀이각 라운드 마다 2장의 카드가 주어지고 1 장당 1 코인으로 카드를 살 수 있다. 사지 않은 카드는 버려진다.이후 라운드를 끝내기 위해 카드의 합이 n + 1이 되는 2장의 카드를 낸다. 그럼 정석적으로 생각한 다면 시나리오는 다음과 같다.카드 뭉치에서 앞으로 나오는 카드의 종류를 보고 내가 사야하는 카드인지 판단.해당 카드를 살 수 있는지 판단.손에서 카드의 합이 n + 1이 되는 카드 제출. 하지만 카드 뭉치에서 내가 사야하는 카드인지 판단하는 로직이 까다로울 것 같았다.그래서 일단 각 라운드마다 주어지는 카드 2장.. 2024. 12. 2.
[JavaScript] 프로그래머스: 표현 가능한 이진트리 난이도 : Level 3알고리즘 유형 : 트리 탐색문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/150367  문제 풀이주어진 숫자를 이진수로 변환포화이진트리의 노드 갯수는 무조건 2 ^ n - 1이므로 포화이진트리가 될 떄까지 앞에 9을 붙임이진트리 처럼 루트 노드 부터 left → right 로 순회한다.순회하다가 나오는 값이 1이면 자식 노드들을 순회하고, 순회하다가 나오는 값이 0이면 자식 노드들의 값이 0인지 확인한다. 0이 아니라면 구성 불가능한 트리임으로 0을 반환한다. function solution(numbers) { let answer = []; numbers.forEach(number => { .. 2024. 11. 29.
[JavaScript] 프로그래머스: 주사위 고르기 난이도 : Level 3알고리즘 유형 : 조합, 이분 탐색문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/258709  문제 풀이승률 계산 방식    A가 선택한 주사위에서 나올 수 있는 수를 저장한 배열 => arrA    B가 선택한 주사위에서 나올 수 있는 수를 저장한 배열 => arrB        arrA에서 반복문을 돌면서 각 결과값이 이기는 횟수 세기.[ 조합 ] 선택할 수 있는 주사위의 조합 구하기.[ 조합 ] 선택된 주사위 조합에서 나올 수 있는 결과의 값 구하기.[ 이분 탐색 ] 선택된 주사위의 결과 값에서 반복문을 돌면서 선택되지 않은 값 중에서 이기는 횟수 구하기. A가 승률이 높은 주사위들의 조합을 찾기 위해 모.. 2024. 11. 23.
[JavaScript] 프로그래머스: 상담원 인원 난이도 : Level 3알고리즘 유형 : 그리드 알고리즘문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/214288  문제현대모비스는 우수한 SW 인재 채용을 위해 상시로 채용 설명회를 진행하고 있습니다. 채용 설명회에서는 채용과 관련된 상담을 원하는 참가자에게 멘토와 1:1로 상담할 수 있는 기회를 제공합니다. 채용 설명회에는 멘토 n명이 있으며, 1~k번으로 분류되는 상담 유형이 있습니다. 각 멘토는 k개의 상담 유형 중 하나만 담당할 수 있습니다. 멘토는 자신이 담당하는 유형의 상담만 가능하며, 다른 유형의 상담은 불가능합니다. 멘토는 동시에 참가자 한 명과만 상담 가능하며, 상담 시간은 정확히 참가자가 요청한 시간만큼 걸립니다... 2024. 11. 15.
[JavaScript] 프로그래머스: 미로 탈출 명령어 난이도 : Level 3알고리즘 유형 : 그리드 알고리즘문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/150365  문제n x m 격자 미로가 주어집니다. 당신은 미로의 (x, y)에서 출발하여 (r, c)로 이동해서 탈출해야 합니다.단, 미로를 탈출하는 조건이 세 가지 있습니다.격자의 바깥으로는 나갈 수 없습니다.(x, y)에서 (r, c)까지 이동하는 거리가 총 k여야 합니다.이때, (x, y)와 (r, c)격자를 포함해, 같은 격자를 두 번 이상 방문해도 됩니다.미로에서 탈출한 경로를 문자열로 나타냈을 때, 문자열이 사전 순으로 가장 빠른 경로로 탈출해야합니다.이동 경로는 상, 하, 좌, 우로 이동시, 'u', 'd', 'l',.. 2024. 11. 11.
[JavaScript] 프로그래머스: 다단계 칫솔 판매 난이도 : Level 3알고리즘 유형 : 시뮬레이션문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/77486  풀이메인 생각 : 문제의 설명에 나와있던 대로, 판매가 이루어질 때마다 윗 노드에 판매익의 10%를 넘겨주는 방식으로 풀었다.로직 과정입력 정리parentDict : 자신의 윗 노드(parent)를 저장하는 dictionary자신의 윗 노드를 빠르게 찾기 위해 array에서 find 매서드를 사용하는 것이 아닌 dictionary 객체를 사용하였다.moneyDict : 자신에게 오는 수익을 저장하는 dictionary판매가 일어날 때마다 윗노드에 판매 수익의 10% 넘겨줌.정답 출력 코드function solution(enro.. 2024. 11. 6.