3가지 값들 중 큰 값과 중간 값 작은 값 찾기큰 값이 여러개 존재할 경우 오름차순으로 처리하기ex) count1 = 5 , count2 = 0, count3 = 0 이면 5가 가장 크므로 1 리턴을 원한다.count1 = 2 , count2 = 2, count2 =
문제(https://programmers.co.kr/learn/courses/30/lessons/428621\. 여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다. 이때 이 학생은 체육복을 하나만 도난당했다고 가정하며, 남은 체육복이 하나이기에 다른
문제 처음 성공한 코드 좀 줄이래서 많이 줄인 코드 >commands의 배열이 예를들어 [[2, 5, 3], [4, 4, 1], [1, 7, 3]]라면 map을 이용해 x는 반복할때마다 [ 2, 5, 3 ],[ 4, 4, 1 ],[ 1, 7, 3 ] 총 3번
왼쪽에서 기지국을 발견할 때마다 왼쪽의 기지국과 닿지않는 거리를 구해 기지국이 최소한으로 설치하는 양 만큼 설치 시키는 값을 추가시키는 것을 반복하며 마지막 기지국 후에 기지국과 닿지않는 오른쪽 부분은 따로 처리한다.반복은 가장 최소한으로 하기위해 stations의 배
솔직히 웬만한 설명은 다 구글링해서 나와있는거 아니까... var max = 99999999; var min = 99999999; var minpos => 시작점과 가장 거리가 가까우면서 지나치지않은 정점 var dist => 1차원 시작점으로부터의
일단 문제가 좀 모호하다 느꼈다. 예를 들어서 자연수 2개로 이루어진 집합 중 합이 9가 되는 집합은 다음과 같이 4개가 있습니다.{ 1, 8 }, { 2, 7 }, { 3, 6 }, { 4, 5 }그중 각 원소의 곱이 최대인 { 4, 5 }가 최고의 집합입니다.만약
배열로 works가 존재하는데 n만큼 배열에 숫자를 감소시켜 각각의 값들의 제곱의 합이 최소가 되게 만들기 => (나의정리) 감소를 전부 시켰을때 모든 숫자들의 각각의 차이가 심하지않고 고르게 분포시키기마치 테트리스를 가장 낮은 높이로 만드는 것과 비슷하다고 생각배열을
조합 (nCr)과 팩토리얼2\*1 길이의 타일을 n x 2 타일에 붙여넣는 방법 찾기나는 처음 n=4일때 4개를 세로로 하는 방법 1개 ( 4C4)4개를 |=| ,||=,=|| 형태로 3개가 나타나는 것 (3C2)4개를 가로로 하는 방법 1개 (2C0) 조합으로 풀면
핵심은 끝까지 남기려는 풍선을 기준으로 좌,우 구간의 최소값을 구했을때(leftMin, rightMin),터트리려는 풍선의 값은 두 최소값 보다 크지 않아야합니다.한번은 작은 풍선을 터트릴 수 있기 때문에 터트리려는 풍선이좌,우 최소값중 하나 보다는 클 수 있어도, 둘
서로 같은크기의 배열이 있을때 배열마다의 값을 서로 곱하고 더했을때 최솟값 찾기=> 그냥 서로 가장 작은 값이랑 서로 가장 큰 값을 차근차근 더한게 최솟값이 되겠지문제없이 맞췄다.모든 배열을 돌면서 필요한 값들을 증가시키므로 reduce 함수를 이용할만 하고 필요에따라
문자열이 주어진 상태에서 이를 공백을 기준으로 분리하여 만든 숫자들 중 최댓값과 최솟값을 찾아낸다.공백 분리 후 number로 형변환 후에 최댓값에 공백을 더하고 최솟값을 더한것을 리턴한다.Math.min(...arr)는 Math.min.apply(null,arr)와
두 위치에서 계속 올라갈때 서로 만날때까지 대진한 횟수 구하기구하려고 별 짓 해봤지만 알고보니 혼자 헛짓 했었다.해당 값이 2로 계속 나누었을때 내림한 값이 서로 같을때가 대진을 만났을때이다.즉 서로 같아질때까지 서로 계속 2로 나누다가 answer를 증가시키고 같아지
90/100최대 2명까지 탈수있는 구명보트보다 무게가 2명이 덜나가게 탈수있을 때 최소한의 구명보트 횟수정렬 후 양끝의 합이 limit보다 작다면 둘다 없애고 answer증가, 그게 아니라면 큰 값만 삭제후 answer증가, 그걸 반복해서 어떤 값이 limit/2보다도
100/100테두리색은 갈색, 그 안의 색은 노란색으로 채울때 가로세로의 길이를 리턴그냥 코드식을 세우면 a x b = brown + yellow(a-2) \* (b-2) = yellow 이 두식을 이용해서 a + b = (brown + 4)/2 를 알 수 있다. 위에
100/100붙어있는 알파벳 계속 제거 후 제거가 불가능하게 남는다면 0리턴 전부 제거되면 1리턴초반에 시간을 낭비하고 많이쓰다가 생각해보니 결국 연결은 마지막 대상 기준 다음 대상과 같다면 삭제를 진행하며 push pop 관계를 이용하면 된다 생각result로 수정
매개변수로 rows, columns, queries가 주어질때 해당 스핀에서 최솟값의 모음인 배열을 리턴하기ex)solution(6,6,\[2,2,5,4,3,3,6,6,5,1,6,3]))의 매개변수 형태라면 3번의 반복을 통해 8,10,25을 리턴해야한다.시험 후 확인
53.3/100genres라는 1차원배열과 plays라는 1차원배열이 존재하며 이때, 각 장르마다의 총합플레이시간이 가장큰 장르를 기준으로 2개씩 뽑아낸다. (1개밖에 없을경우 1개만 가능)해당 이름의 장르 프로퍼티가 없다면 plays값을 넣고 그게 아니라면 값을 더해
문제100/100배열두개가 주어져있고 두개를 각각의 인덱스에 맞추어 계산한 합을 결과로 리턴배열과 idx 그리고 계산된 합을 사용하는데 용이하다. (각각의 배열값들을 원하면 forEach나 map이 유리)prev : 이전값으로 기존에는 0이고 그 후에는 return한
n이하의 배열을 만들고 그 배열에서 에라토스테네스의 체를 이용한다.해당 값보다 작은 값들에서 이미 곱셈을 처리했기 때문이다. 100을 기준으로그렇다면 왜 10까지만 반복하는 걸까 ? 2를 가지고 위의 작업을 수행하면 22, 23, 24, 25... 2\*50까지 지워
a,b의 순서에 관계없이 a%b가 0이 될때 비로소 최대공약수가 나온다.전체 곱에서 최대공약수를 나누어 준다.ex) 2,6,8,14에 대한 최소공배수는 168이다.ex) 3,6,5,14의 최소공배수는 6,5,14의 최소공배수이고 30,14의 최소공배수이다.즉, 2개씩비
문제100/100문제 설명0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다.x의 모든 0을 제거합니다.x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다.예를 들어, x = "0111010"이라면, x에 이진 변환을
문제100/100 (35분 소요)인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다.나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다.그렇지 않으면 J를 인쇄합니다.대기목록을 반복해서 빼냈다
문제100/100 (30분소요)모든 연산을 처리한 후 큐가 비어있으면 0,0 비어있지 않으면 최댓값, 최솟값을 return 하도록 solution 함수를 구현해주세요.주어진 배열을 문자와 숫자를 분리 한 후 push pop을 통해서 처리map함수를 통해 { } 형태로
문제100/100 (2시간 반 소요)n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 1, 1, 1, 1, 1로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다.\-1+1+1+1+1 = 3\+1-1+1+1+
문제간단히 배열크기 N일때 N/2종류를 골라야하는데 최대로 많은 종류를 해야한다. => 즉, N/2보다 종류가 많으면 최대로 고를 수 있는 것은 N/2종류이고 N/2보다 종류가 적으면 최대로 고를 수 있는 것은 현재 존재하는 종류의 최대이다. 방법1방법2
완주하지 못한 선수 문제100/10020분수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 complet
문제100/100푸는시간 : 1시간 이상아이디의 길이는 3자 이상 15자 이하여야 합니다.아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(\_), 마침표(.) 문자만 사용할 수 있습니다.단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니
문제100/1001시간10분 소요키패드의 왼쪽라인은 왼쪽손으로 오른쪽라인은 오른손으로 중간은 해당 거리를 계산하여 가까운쪽으로 하되 둘다 같으면 hand배열을 통해 적용시킨다.중간일때1) 차이가 양수일때2) 차이가 음수일때3) 차이가 0일때 => hand0이 'r'일
{'a' : 10, 'b' : 20} , {'a' :30 , 'b' :100} 이러한 것들로 각각을 sort로 분류시킬 수 있다.let obj = {'a' : 10 ,'b' :300} 이러한 형태로 obj'a' or obj'b'를 통해 접근이 가능하고 관련 모음의 전체
문제(https://programmers.co.kr/learn/courses/30/lessons/64061100/10040분위치마다 뽑아서 stack에 쌓고 같은 것이면 스택에서 둘다 제거 하고 전부 진행 후 제거한 갯수 리턴이때 2개의 오류가 있었다. val
문제(https://programmers.co.kr/learn/courses/30/lessons/129158.3/100포기n번째 위치에 따라 정렬하되 같을경우 문자열 전체를 사전순으로 정렬기준 문자열과 비교했을 때 비교 대상 문자열이 정렬상 전에 오는지, 후에
문제100/1004분배열 계산하기arr1이 2차원 배열이므로 그것을 통해 나온 arr 1차원배열과 그때의 행을 담당하는 i 다시 arr에 map을 사용하여 나온 해당 값 val과 그때의 열을 담당하는 j로 return을 val+arri로 처리한다.
val은 찾고자 하는 목표 찾고자하는 목표를 찾는 마지막 결과는 min이다.
출처100/100 (나중에 혼자푼거)숫자 + 문자 + 특수문자(선택) 형태로 계산한다.숫자는 0~10문자는 S,D,T특수문자는 \*,if => 10일때else if => 그외의 숫자일때else if => 'D'일때else if => 'T'일때else if => 'els
new Graph() 를 통해 만든 내용 결과객체의 키는 노드이고 값은 간선이다.nodes 라는 객체의 키를 가진 형태해당 노드가 없다면 빈 배열의 객체 값을 가진 형태 생성해당 노드를 가지고 있나 체크노드가 존재한다면 해당 노드를 삭제delete 연산자 : 객체의
너비우선탐색으로 루트 노드로 부터 인접 노드를 탐색한다.기본적으로 그래프에서의 결과 대상을 탐색하는데 이용한다. 매개변수를 통해 받아온 객체 형태(graph)와 startNode값을 통해 시작노드로 부터 탐색을 시작하고 해당 노드가 남아 있지 않을때까지 반복한다.해당
전위순회중위순회후위순회결과가로로 결과를 출력하기 위해 console.log가 아닌 process.stdout.write 사용문자열의 끝을 체크하기 위해 isEnd를 사용autocomplete 함수로 원하는 문자열을 찾은 후 order 함수를 실행하여 해당 문자열부터 해