문제 출처프로그래머스 lev1 - 짝수와 홀수나의 풀이 다른 풀이
프로그래머스 lev1 - 평균 구하기 정수를 담고 있는 배열의 평균값 구하기 reduce 메서드 활용하기 배열의 길이로 나눠주기
프로그래머스 lev1 - 약수의 합정수 n의 약수를 모두 더한 값 반환하기 (0 <= n <= 3000)기본 for 반복문 풀이(1~n) - 나머지가 0이면 약수.n의 약수는 본인을 제외하고 n/2보다 클 수 없으니 1~n이 아닌 1~n/2까지 확인제곱근(M
프로그래머스 lev1 - 자릿수 더하기자연수 N의 각 자릿수의 합 구하기. 예를 들어, 123 => 1+2+3=6toString(), split() 메서드 사용하기reduce 메서드 사용문자열을 더할 때마다 b를 숫자로 바꿔줘야 정상적으로 연산됨. 숫자를 while 1
프로그래머스 lev1 - 정수 제곱근 판별임의의 양의 정수 n이 어떤 양의 정수 x의 제곱근인지 판별하기. 양의 정수 n이 양의 정수 x의 제곱근이면 x+1의 제곱근을 반환하고, 아니라면 -1을 반환하기.따로 제곱근을 변수로 만든 뒤 비교하기 정수 판별을 num%1==
프로그래머스 lev1 - 자연수 뒤집어 배열로 만들기자연수 n의 각 자릿수를 뒤집어서 요소로 갖고 있는 배열 반환하기. 예를 들어, n=12345 => return 5,4,3,2,1맵핑 사용하기
프로그래머스 lev1 - 문자열 내 p와 y의 개수대문자와 소문자가 섞여있는 문자열 s에 대해서, 문자열 'p'의 개수와 'y'의 개수가 같으면 true 반환, 다르면 false 반환하기. 'p'와 'y' 모두 없으면 항상 true 반환하기. + 대소문자 구별하지 않기
프로그래머스 lev1 - 하샤드 수양의 정수 x가 하샤드 수라면, x의 자릿수들의 합으로 x가 나눠져야 한다. x가 하샤드 수인지 아닌지 판별하는 함수 완성하기 sum에 자릿수의 합을 저장한 뒤, 나눠떨어지면 true 반환, 아니면 false 반환true==1, fal
문자열을 정수로 바꾸기문자열 s를 숫자로 변환하기 사칙연산을 통한 형 변환
정수 내림차순으로 배치하기정수 n의 각 자릿수를 큰 수부터 작은 순으로 정렬한 정수 반환하기 내림차순 정렬 메서드 sort((a,b) => b-a);사칙연산(+)을 통한 형변환 풀이사칙연산(\*1)을 통한 형변환 풀이
프로그래머스 lev1 - x만큼 간격이 있는 n개의 숫자정수 x와 자연수 n, x부터 시작해서 x씩 증가하는 숫자를 n개 지니는 리스트 반환하기 for 문에서 i+=x로 증가폭 설정하기. x==0이라면 n개 만큼 배열에 넣어주면 됨. 그냥 곱해주면 된다. for문이 더
프로그래머스 lev1 - 콜라츠 추측주어진 수가 1이 될 때까지 다음 작업을 반복하면 모든 수를 1로 만들 수 있다는 추측 1-1. 입력된 수가 짝수라면 2로 나눈다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더한다. 2. 결과로 나온 수에 같은 작업을 1이 될
프로그래머스 lev1 - 서울에서 김서방 찾기배열에서 kim의 위치 x를 찾아서 '김서방에 x에 있다'라는 문자열 반환하기. includes 메서드 사용하기
프로그래머스 lev1 - 두 정수 사이의 합두 정수 a,b 사이에 속한 모든 정수의 합을 반환하기가우스 함수 사용하기 참고가우스 함수 명쾌 정리 - 최대정수함수 = 바닥함수 = floor function !== 가우스함수알고리즘 문제 풀이 - 자주 나오는 수학 개념 총
프로그래머스 lev1 - 나누어 떨어지는 숫자 배열arr의 요소들 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열 반환하기. 하나도 없다면 -1을 배열에 담아 반환하기. filter 메서드 사용
프로그래머스 lev2 - H-Index어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index이다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가
프로그래머스 lev2 - 행렬의 곱셈2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.answer 배열을 만들 때, new Array로 배열을 미리 만들었더니 tmp 값이 이상하게 들어가서 Ar
프로그래머스 lev2 - 괄호 회전하기주어진 문자열을 회전하면서, 올바른 문자열의 개수를 세서 반환// 1. 회전 구현 회전은 i for문 맨 마지막 s.push(s.shift());로 구현. // 2. 괄호 짝 판별회전하기 전에 올바른 괄호인지 판별한다. tmp의 길
프로그래머스 lev2 - 튜플셀수있는 수량의 순서있는 열거 또는 어떤 순서를 따르는 요소들의 모음을 튜플(tuple)이라고 합니다. n개의 요소를 가진 튜플을 n-튜플(n-tuple)이라고 하며, 다음과 같이 표현할 수 있습니다.(a1, a2, a3, ..., an)튜
프로그래머스 lev2 - n^2 배열 자르기아래 풀이는 signal: aborted (core dumped) 오류 발생마찬가지로 signal: aborted (core dumped) 오류 발생...
프로그래머스 lev1 - 핸드폰 번호 가리기repeat 함수 사용삼항 연산자문자열 n 을 배열로 바꾸고, 배열의 첫번째부터 마지막에서 4번째 전 배열크기만큼 \* 로 채워라. 이 후에 join 하여 string으로 반환하라정규식 풀이\\d : 숫자 0~9\\d{numb
프로그래머스 lev1 - 가운데 글자 가져오기
프로그래머스 lev2 - 위장혼자 엄청 꼬였다. Object.keys(obj).length > 2일 때 재귀를 연습해보려고 했으나, 풀이가 괴상하게 흘렀다..
프로그래머스 lev1 - 로또의 최고 순위와 최저 순위const rank = \[6,5,4,3,2,1,0];가 핵심
프로그래머스 lev2 - 기능개발for문 순회하면서 각각 소요되는 시간을 ch 배열로 정리배열의 크기를 비교하며 answer값에 넣기이때, 주어진 tc만 보고 단순히 chi < chi+1일때만 판단하면 안 되고, max 업데이트로 접근해야 한다. days를 구할
프로그래머스 lev1 - 직사각형 별찍기repeat 메서드 사용
프로그래머스 lev1 - 같은 숫자는 싫어
프로그래머스 lev1 - 이상한 문자 만들기O(n) !?
프로그래머스 lev1 - 두 개 뽑아서 더하기
프로그래머스 lev2 - 프린터모든 애들의 중요도가 다르다면 단순히 sort()로 풀 수 있을 것 같다. 하지만 중요도가 같은 경우가 있을 수 있으므로 일일이 while 문으로 빼주면서 res 변수로 추적해야 한다고 판단했다.
프로그래머스 lev2 - 뉴스 클러스팅배열 내 중복 문자열에 대한 처리가 안 된다.
문자열에서 해당하는 문자열 전부 탐색하려면, replaceAll을 사용하면 될텐데, 그냥 //g를 사용하면 편하다.
프로그래머스 lev2 - 타겟 넘버op로 분기점을 주고 싶었는데 감이 안 잡힌다..
프로그래머스 lev2 - k진수에서 소수 개수 구하기
프로그래머스 lev2 - 주차 요금 계산
프로그래머스 lev1 - 제일 작은 수 제거하기apply 메서드를 사용한 최소값 찾기
프로그래머스 lev1 - 음양 더하기reduce 메서드삼항연산자
프로그래머스 lev1 - 수박수박수박수박수박수?slicerepeat
프로그래머스 lev1 - 없는 숫자 더하기
프로그래머스 lev1 - 내적
프로그래머스 lev1 - 신고 결과 받기12
프로그래머스 lev1 - 문자열 내림차순으로 배치하기
프로그래머스 lev2 - 압축
프로그래머스 lev1 - 행렬의 덧셈어쨌든 arr1, arr1i로 파고 들어가는 게 핵심
프로그래머스 lev1 - 3진법 뒤집기
answer 배열에 id로 먼저 넣은 뒤, 만들어 놓은 id 객체를 순회하면서 id를 닉네임으로 바꾸기
프로그래머스 lev2 - 피로도완전탐색을 하되, 중복을 피하기 위해 중복 체크하는 ch 배열을 생성한다. adv 함수 안에서 재귀를 순회하는데, Level이 dungeons.length 보다 커지면 종료하고, 그렇지 않다면 dungeons를 순회하면서 중복이 아니고(c
프로그래머스 lev1 - 최대공약수와 최소공배수무식하게 공약수 중에서 최대, 공배수 중에서 최소로 풀었다...최대 공약수의 약수가 공약수이다. 최대 공약수를 알면, 공약수를 쉽게 구할 수 있다. 두 수의 공약수가 1밖에 없을 때 이 두 수를 서로소라고 한다. 공약수가
프로그래머스 lev1 - 문자열 다루기 기본정규식 표현.test(’문자열’) : 문자열이 정규식 표현과 매치되면 true 아니면 false 반환^x : 문자열의 시작을 표현. x문자로 시작됨을 의미x$ : 문자열의 종료를 표현. x문자로 종료됨을 의미 \\d : dig
프로그래머스 lev1 - 약수의 개수와 덧셈제곱근이 정수면, 약수의 개수는 홀수이다.
프로그래머스 lev2 - n진수 게임tc1에서만 무한루프에 빠진다..왜!?
프로그래머스 lev1 - 부족한 금액 계산하기가우스 1+ ... +100 1+100=101, 2+99=101, ...=> 50 \* (100+1) = 5050n부터 m까지 더한 값 = ((n+m) \* (n부터 m까지의 개수)) / 21부터 100까지의 합 = 101\
프로그래머스 lev1 - 예산DFS로 풀어보려 했는데 시간이 너무 오래 걸린다. 너무 어렵게 생각했나? 문제를 잘못 이해했다. 나는 budget을 딱 맞추려고 했는데, 그럴 필요가 없었다. budget 안에서 최대한 구매하면 되는 거고, 각 부서가 신청한 금액만큼은 정
프로그래머스 lev1 - 시저암호아스키코드 대문자 영문 : 97~122소문자 영문 : 65~90삼항연산자
프로그래머스 lev1 - 비밀지도자릿수만큼 앞자리 0으로 채우는 방법 arr1\[i]=Array.from({length:n-arr1\[i].length}, () => 0).join('')+arr1\[i];압축 방법 map( (a,i) => (a | b\[i]))내장함수
프로그래머스 lev1 - 최소직사각형가독성이 좋다.
프로그래머스 lev1 - 문자열 내 마음대로 정렬하기내림차순 localCompare() : 사전순 정렬해주는 내장 메서드인듯?비교 문자열을 앞으로 빼서 얘를 통해서 정렬하고, 그 비교 문자열을 ''로 지워주면 끝
프로그래머스 lev1 - k번째 수 구조분해할당
프로그래머스 lev1 - 숫자 문자열과 영단어해당 문자열로 splitsplit(x)면 x를 기준으로 나누늑 서이고, join(y)면 y를 기준으로 묶는 것임. 즉, 각 배열 사이에 y가 들어간다. 정규식 풀이
프로그래머스 lev1 - 2016년Date.prototype.getDay() 하면 0~7 나온다.
프로그래머스 lev1 - 포켓몬종류만 구하면 되는데, 너무 어렵게 생각했다. 그냥 간단하게 틀에 들어갈 수 있는 개수보다 종류가 더 많으면 그냥 틀 개수가 최종값이고, 틀에 들어갈 수 있는 개수보다 종류가 더 적다? 그러면 종류의 개수가 최종값인 간단한 문제.
프로그래머스 lev1 - 소수 찾기set으로 홀수들을 일단 다 구해놓고 제곱에 해당하는 애들을 삭제하는 방식. 에라토스테네스의 체를 사용하되 set을 통해 거꾸로 구한듯?신기하다.
프로그래머스 lev1 - 모의고사단순하게 i%a1.length 하면 끝나는 거였다.
문제 출처 프로그래머스 lev1 - 소수 만들기 문제 > 나의 풀이 >소수 판단할 때 방법들 만약 1~n까지 전부 for문을 돌 경우 cnt≤2일 때 소수이고 1~Math.sqrt(n)을 순회한다면 cnt≤1이 맞음 근데 여기서 1은 어차피 무조건 돌테니까 2
프로그래머스 lev1 - 실패율예상했던대로 Math.max에서 문제가 생겼던 것 같다. 아이디어는, 오브젝트로 ans를 obj에 담고, 그 obj를 다시 배열로 만들어서 sort 한 다음에 뽑아내는 방식. 근데 너무 더럽게 풀었다.
프로그래머스 lev1 - 다트게임{a : b}랑 \[a,b] 두 표현 중에서 정렬을 해야 한다면 후자가 훨씬 용이한 것 같다. \+= 연산일 때만 cnt를 계산하고, 나머지 \`\*정규식 풀이\\d ⇒ 숫자(digit)\\D ⇒ 숫자 아닌 것(not digit)d{1,
프로그래머스 lev1 - 체육복Array.prototype.find() ⇒ 주어진 판별 함수를 만족하는 첫번째 요소 반환 Math.abs() ⇒ 절대값return true 라는게 그 우리가 완전 탐색에서 return; 하듯이 만족 안 하면 넘긴다는 의미인듯. 즉, 뺀
프로그래머스 lev1 - 완주하지 못한 선수for ... insort보다 성능도 좋고, 가독성도 좋다. 요소 추가: Map.set(key, value)요소 접근: Map. get(key)간단해서 좋다.
프로그래머스 lev1 - 키패드 누르기정규표현식 xy ⇒ x와 y 중에 하나 RegExp.prototype.test() ⇒ 정규표현식 만족하는지 판단, true or false로 반환
프로그래머스 lev1 - 신규 아이디 추천1단계 newid의 모든 대문자를 대응되는 소문자로 치환합니다.2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(), 마침표(.)를 제외한 모든 문자를 제거합니다.3단계 new_id에서 마침표(.)가 2번 이상 연
프로그래머스 lev1 - 숫자 짝꿍“전체를 도는 게 아니라 개수로 접근하기”0~9 중에서 겹치는 숫자의 개수를 파악해서 그걸 answer에 넣어주기. 아무것도 없으면 -1 리턴0 이외에 아무것도 없으면 0 리턴 그 외에는 answer 값을 정렬해서 리턴객체로 숫자 카운
프로그래머스 lev1 - 성격 유형 검사하기
프로그래머스 lev1 - 크레인 인형뽑기 게임map : 대상이 되는 배열의 ‘각 요소’를 화살표 함수의 ‘반환 값’으로 ‘대체’한다. 예를 들어, 1,2.map(x ⇒ x2); 의 반환 값은 2,4가 된다. 이는 1,2 각각의 자리를 x2의 결과인 2와4가 대체했다고
프로그래머스 lev2 - N개의 최소공배수a는 누적값, b는 현재 요소의 값초기값을 설정하지 않으면 a는 첫번째 요소의 값, b는 두번째 요소의 값reduce 메서드 min % max
프로그래머스 lev2 - 멀쩡한 사각형w를 x좌표의 길이라고 생각하고, x좌표를 for loop를 돌면서 x에 해당하는 y값(각 x축과 만나는 y지점)을 구하면 이게 최대값이 된다. 그걸 넘어서면 박스를 사용하지 못하니까 그 최대값 이하로는 쓸 수 있는 박스.1차 함수
프로그래머스 lev2 - 문자열 압축같을 때는 진행하고, 다를 때 비로소 넣어주는 게 핵심 아이디어!!
프로그래머스 lev2 - 최댓값과 최솟값
프로그래머스 lev2 - 멀리 뛰기재귀로 시간 초과 발생하면, 동적계획법으로 쪼개보기
프로그래머스 lev2 - 짝지어 제거하기스택 (Last In First Out)
프로그래머스 lev2 - 올바른 괄호배열을 쓰면 효율성 테스트에서 시간초과 발생함.
프로그래머스 lev2 - JadenCase 문자열 만들기문제에서 s는 알파벳과 공백문자(" ")로 이루어져 있으므로 테스트케이스 중 연속된 공백이 있을 수 있다. 이때 단순히 공백을 기준으로 split하게 되면 '빈 문자열'이 요소로 있는 경우가 생기고 이때 해당 요소
프로그래머스 lev2 - 최솟값 만들기그냥 A의 제일 작은 값과 B의 제일 큰값을 곱해서 똑같은 인덱스로 전부 더하면 그게 최소값이래. 그래서 sort만 잘 쓰면 되네...대체 왜!!?!?!??
프로그래머스 lev2 - 이진 변환 반복하기
프로그래머스 lev2 - 카펫Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체
프로그래머스 lev2 - 캐시LRU : 최근에 사용하지 않은 애를 제거 ⇒ 만약에 캐쉬가 있으면 shift가 아니라 splice로 콕 짚어서 삭제할 수 있도록
문제 출처 프로그래머스 lev2 - 예상 대진표 문제 > 나의 풀이 (88.2/100) 다른 풀이 a와 b가 붙게 되는 순간, 즉 같은 번호로 한쌍이 되는 순간까지 라운드를 진행해야 함. 무조건 올림처리를 해주기 때문에, 둘의 값이 같아지는 경우가 존재한다.
프로그래머스 lev2 - 영어 끝말잇기
프로그래머스 lev2 - 피보나치 수시간 초과 발생하는 거 보니 메모이제이션 필요한 것 같다. 마지막에만 나눠주는 게 아니라 매번 나눠줘야 했음. 이렇게 풀었는데도 마지막 문제 2개가 런타임 에러가 뜬다. ⇒ 왜 에러가 뜨냐면, 13,14 TC에서는 js 엔진이 가능한
프로그래머스 lev2 - 다음 큰 숫자
프로그래머스 lev2 - 구명보트dfs로는 시간초과 발생한다..그리디 알고리즘시작점과 끝지점을 설정하고,구명보트에 최대 2명씩 밖에 탈수 없기 때문에 가장 많이 탈 수 있는 방법은 가장 무거운 사람과 가장 가벼운 사람이 타는 방법 뿐임.호이스팅(var i)을 활용한 풀
프로그래머스 lev2 - 숫자의 표현약수이고, 홀수면 answer++; 홀수의 경우 약수는 홀수밖에 안 나온다. 예를 들어 15의 약수는 1, 3, 5, 15를 활용해서 연속된 수의 합이 15가 되도록 나올 수 있음. 15=1+2+3+4+5 (중간값 3) 3x5 / 1
프로그래머스 lev2 - 프렌즈4블록//1. 문자열을 배열로 쪼개주고 //2. 현재 좌표에서 2x2가 해당되는지 판별해준다. direction을 배열로 미리 잡아두고, direction을 map 순회한 좌표를 일단 blocks 변수에 집어 넣는다. 그리고 blocks를
프로그래머스 lev2 - 스킬트리// 1 배열 res : 유저스킬배열 중 선행스킬순서에 해당하는 스킬만 넣을 배열을 생성한다 // 2유저스킬배열을 map 이중순회하면서(일종의 skill_treesi)\+-- 유저의 스킬들이 선행스킬에 해당하고(skill.includes
프로그래머스 lev2 - 땅따먹기
프로그래머스 lev2 - 방문길이
프로그래머스 lev2 - 파일명 정렬
프로그래머스 lev2 - 연속 부분 수열 합의 개수철호는 수열을 가지고 놀기 좋아합니다. 어느 날 철호는 어떤 자연수로 이루어진 원형 수열의 연속하는 부분 수열의 합으로 만들 수 있는 수가 모두 몇 가지인지 알아보고 싶어졌습니다. 원형 수열이란 일반적인 수열에서 처음과
프로그래머스 lev2 - 모음사전재귀를 돌면서, cnt++로 순서를 추적했다. tmp.join('') 값과 주어진 word 값이 같으면 답을 도출하고 return한다. \[프로그래머스] 모음 사전 js 풀이\[프로그래머스] 모음사전 Javascript아래와 같은 규칙
프로그래머스 lev2 - 가장 큰 수
프로그래머스 lev2 - 소수 찾기길이가 짧아서 재귀를 사용했다. 재귀를 사용해서 answer 배열에 담고 중복을 제거하기 위해 new Set을 사용했다. 그리고 나서, filter 메서드를 통해 소수를 판별해서 개수를 return 했다.
프로그래머스 lev2 - 게임 맵 최단거리ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다.지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다
프로그래머스 lev2 - 다리를 지나는 트럭
프로그래머스 lev2 - 2개 이하로 다른 비트
프로그래머스 Lev2 - 2 x n 타일링동적계획법이 필요한 것 같다.
프로그래머스 lev2 - 할인 행사
프로그래머스 lev2 - 쿼드 압축 후 개수 세기 동적계획법top down 방식(재귀함수/memoization)재귀를 통해 위에서부터 필요한 계산만 하면서 내려오면 된다. bottom up 방식 (반복문/tabulation)n번째 값을 구하기 위해 처음부터 모두 계산하
프로그래머스 lev2 - 124 나라의 숫자자릿수를 먼저 구하고, 해당 자릿수에 대해서 재귀를 돌려고 했으나 런타임 에러가 발생한다.
프로그래머스 lev2 - 큰 수 만들기 그리디. stack에 push/pop하면서 최적의 해를 판단한다. push할 때 더 큰 게 있으면 pop (pop할 때 k 차감) 그게 아니라면 push지나간 값들에 대해 판단하기에는 배열 자료구조가 가장 좋은 것 같다. 프로그래
프로그래머스 lev2 - 귤 고르기
프로그래머스 lev2 - 삼각 달팽이또는 for문을 돌면서 answer = \[...answer, ...a\[i]]를 해도 좋다.
문제 출처 프로그래머스 lev2 - 줄 서는 방법 문제 >> 나의 풀이 1차 시도 (정확성 통과, 효율성 실패)
프로그래머스 lev2 - 메뉴 리뉴얼
프로그래머스 lev2 - 괄호 변환짝이 맞는지 판단하기 위해 string left, string right로 분리해서 개수를 비교해준다. p.slice(0, i+1)를 현재 u로 잡은 뒤에, u가 올바른 괄호면 그대로 넣으면 되지만, 올바른 괄호가 아니라면 (와 )를
프로그래머스 lev2 - 수식 최대화풀긴 풀었지만 난해하게 푼 것 같다.. // 1. getPermutations 함수로 3!를 구했다. 경우의 수가 중요한 건 아니라서 그냥 배열로 손수 넣는 게 빨랐을지도 모르겠다. // 2. 문자열로 된 계산식을 숫자와 연산자로 분
프로그래머스 lev2 - 방금그곡
프로그래머스 lev2 - 행렬 테두리 회전하기// 1. 행렬을 생성해준다. // 2. 시계 방향으로 정직하게 while문을 일일이 돌아준다.
프로그래머스 lev2 - 배달map으로 넣으면 key값에서 중복이 발생한다. 예를 들어, \[3, 5, 2], \[3, 5, 3] 에서 최소값인 2가 들어가야 하는데 3으로 덮여서 제대로 계산이 안 된다..
프로그래머스 lev2 - 두 큐 합 같게 만들기투포인터, 그리디
프로그래머스 lev2 - 가장 큰 정사각형 찾기
프로그래머스 lev2 - 전력망을 둘로 나누기
프로그래머스 lev2 - 거리두기 확인하기
프로그래머스 lev2 - 롤케이크 자르기
프로그래머스 lev2 - 하노이의 탑
프로그래머스 lev2 - 택배상자
프로그래머스 lev2 - 후보키문제 이해를 제대로 못했다. 조합으로 경우의 수를 구했어야 했는데, 그게 아니라 연속된 경우의 수만 구하다 보니(relation\[i].slice(idx, j))index 기준으로 01 012 0123 12 13 이렇게는 구했지만 13 1
프로그래머스 lev2 - 점 찍기
프로그래머스 lev2 - 조이스틱알파벳을 변경하는 부분은 쉬웠지만, 커서 이동에서 모든 index에서 A를 고려해 좌우 최소값을 찾으려다 보니 코드가 너무 복잡해졌다. 위/아래 알파벳 변경 부분은 단순하게 아스키코드를 사용하면 된다. i+1을 idx 변수에 저장하고,A
프로그래머스 lev2 - N-Queen
프로그래머스 lev2 - 숫자 블록
프로그래머스 lev2 - 숫자 카드 나누기
프로그래머스 lev2 - 순위 검색
프로그래머스 lev2 - 양궁대회남은 화살이 없어서 점수를 획득할 때, 어떻게 처리해야 할지가 어려웠다. ⇒ 남은 화살이 없으면 어피치가 점수를 획득하거나 둘다 점수를 획득하지 못하는 경우를 추가하면 된다. index 0에서 시작해서 재귀를 통해 끝까지 순회한다.
프로그래머스 lev2 - 혼자 놀기의 달인
프로그래머스 lev2 - 3 x n 타일링n이 홀수면 조합이 불가능하므로 무조건 0을 return한다. n이 짝수일 때만 경우의 수를 고려하면 된다. n==2일 때를 하나의 단위로 설정했을 때 경우의 수가 2가지로 분류된다. (1)단위 1개 내부에서의 경우의 수 ⇒ \
프로그래머스 lev2 - 교점에 별 만들기
프로그래머스 lev3 - 이중우선순위 큐
프로그래머스 lev3 - 최고의 집합
프로그래머스 lev3 - 네트워크
프로그래머스 lev3 - 야근 지수
프로그래머스 lev3 - 단어 변환
프로그래머스 lev3 - 단속카메라
프로그래머스 lev3 - 숫자 게임
프로그래머스 lev3 - 베스트앨범
프로그래머스 lev3 - 기지국 설치
프로그래머스 lev3 - 불량 사용자(1) 각 index마다 불량 사용자 해당 목록을 찾고, (2) 각 index마다 불량 사용자들을 조합해서 찾는다. 조합 아이디어를 가져와서 index = 0부터 시작해서 끝 지점에 도달했을 때 답을 찾는 방식을 사용해서 조합을 찾는
프로그래머스 lev3 - 보석 쇼핑
프로그래머스 lev3 - 가장 먼 노드bfs 풀이
프로그래머스 lev3 - 징검다리 건너기
프로그래머스 lev3 - 스티커 모으기(2)
프로그래머스 lev3 - 섬 연결하기
프로그래머스 lev3 - 디스크 컨트롤러
프로그래머스 lev3 - 여행경로
프로그래머스 lev3 - 합승 택시 요금삽질을 해보았다. 합승과 혼자를 구분하기 위해 재귀를 돌면서 한 단계씩 재귀에 진입하기 전에 a,b 두곳에 도착할 수 있는 경로인지를 우선 판단해줬다. a,b 두 곳에 도착할 수 있는 경로인 경우 answer를 업데이트해줘서 최소
프로그래머스 lev3 - 경주로 건설
프로그래머스 lev3 - 입국심사
프로그래머스 lev3 - 가장 긴 팰린드롬
프로그래머스 lev3 - \[1차] 셔틀버스
프로그래머스 lev3 - 자물쇠와 열쇠
프로그래머스 lev3 - 다단계 칫솔 판매
프로그래머스 lev3 - 길 찾기 게임
프로그래머스 le3 - 표 편집
프로그래머스 lev3 - 파괴되지 않은 건물
프로그래머스 lev3 - 기둥과 보 설치
프로그래머스 lev3 - 광고 삽입
프로그래머스 lev3 - 양과 늑대
프로그래머스 lev3 - 외벽 점검
프로그래머스 lev3 - 블록 이동하기
프로그래머스 lev3 - 표현 가능한 이진트리
프로그래머스 lev3 - 미로 탈출 명령어
프로그래머스 lev3 - 등산 코스 정하기
프로그래머스 lev3 - 추석 트래픽
프로그래머스 lev3 - 매칭점수
프로그래머스 lev3 - 코딩 테스트 공부
백준 1717번: 집합의 표현
백준 - 1922번
정렬
data structure and algorithm library in javascript
프로그래머스 lev3 - 풍선 터트리기