본문 바로가기
관리자

Computer Science/Algorithm

(29)
BubbleSort 문제 BubbleSort를 .sort 메소드를 쓰지말고 직접 구현해보는 문제. 배울점 1. bubbleSort 자체가 두 값을 비교하여 큰 값을 뒤로 보내는 방식이다. 2. bubbleSort가 1회 실행되면, 리스트에서 가장 큰 값은 리스트의 제일 뒤쪽으로 가게 되며 이것은 1개의 값이 정렬된 것이라고 볼 수 있다. ex) [3, 4, 5, 9, 1, 2]와 같이 제일 큰 수 9가 애매한 위치에 있더라도 두 값의 위치를 바꾸는 것을 순차적으로 진행하면 9가 리스트의 맨 끝에 오게됨을 알 수 있다. 3. 최적화를 위해 6번줄에서와 같이 len - 1 - i를 반복문의 범위로 준다. 즉, 맨 뒤쪽의 정렬된 큰 값들은 신경쓰지 않도록 한다. 4. 2개의 값을 바꾸는 로직은 9번줄과 같이 ES6의 구조분해할당..
Prm 3 : Subset isSubsetOf 문제 두 개의 배열(base, sample)을 입력받아 sample이 base의 부분집합인지 여부를 리턴해야 합니다. 입력 인자 1 : base number 타입을 요소로 갖는 임의의 배열 (base.length false base = [10, 99, 123, 7]; sample = [11, 100, 99, 123]; output = isSubsetOf(base, sample); console.log(output); // --> false Advanced 시간 복잡도를 개선하여, Advanced 테스트 케이스(base, sample의 길이가 70,000 이상)를 통과해 보세요. 풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ..
Prm 2 : fibonacci fibonacci 문제 아래와 같이 정의된 피보나치 수열 중 n번째 항의 수를 리턴해야 합니다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1입니다. 그 다음 2번째 피보나치 수부터는 바로 직전의 두 피보나치 수의 합으로 정의합니다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... 입력 인자 1 : n number 타입의 n (n은 0 이상의 정수) 출력 number 타입을 리턴해야합니다. 주의사항 재귀함수를 이용해 구현해야 합니다. 반복문(for, while) 사용은 금지됩니다. 함수 fibonacci가 반드시 재귀함수일 필요는 없습니다. 입출력 예시 let output = fibonacci(0); console.log(output); // --> 0 output = ..
Prm 1 : permutation rockPaperScissors 문제 가위바위보 게임은 2인 이상의 사람이 동시에 '가위, 바위, 보'를 외치고 동시에 가위, 바위 또는 보 중에서 한 가지를 의미하는 손 모양을 내밀어 승부를 결정짓는 게임이다. 세 판의 가위바위보 게임을 할 경우, 한 사람은 세 번의 선택(예. 가위, 가위, 보)을 할 수 있습니다. 세 번의 선택으로 가능한 모든 경우의 수를 구하는 함수를 작성합니다. 입력 없음 출력 2차원 배열(arr[i])을 리턴해야 합니다. arr[i]는 전체 경우의 수 중 한 가지 경우(총 세 번의 선택)를 의미하는 배열입니다. arr[i]는 'rock', 'paper', 'scissors' 중 한 가지 이상을 요소로 갖는 배열입니다. arr[i].length는 3입니다. 주의사항 최종적으로 리..
[프로그래머스] [Lv. 1](matrix)카카오 크레인 인형뽑기 게임 문제 이해 N x N 행렬 board와 인형뽑는 위치 moves 리스트가 주어지고, 숫자로 표현된 인형들이 board 내부에 입력되어 있다. moves 리스트에 적힌 인덱스 값에 따라 인형을 bucket에 넣는데, 만약 bucket에 같은 값의 인형이 있다면 인형이 제거되고 최종 answer 값이 +2가 된다. 풀면서 배운 것 for문 중첩 시, 하나의 for문을 특정조건에서 끝내는 형태로 쓸려면 break이나 continue를 해줘야 한다. forEach 문을 써서 풀었는데, forEach 문은 break가 안된다는 것을 배웠다. 답보고 배운 것 -transpose, ||, && 연산자, reduce, map 메서드 transpose는 전치행렬이고, N x M 행렬을 M x N 으로 바꿔준 것이다. 나..