2024/07 9

[알고리즘] 빅오표기법

빅오표기법빅오표기법는 대략적으로 숫자를 세는 것이다. 입력된 내용이 늘어날 수록 알고리즘에 실행 시간이 어떻게 변하는지 설명해주는 방식이다. 어떤 function의 입력 값이 늘어나는 것과 function 실행 시간이 변하는 관계를 의미한다.알고리즘의 성능 평가를 하기 위해서 사용하드웨어의 영향을 받지 않는다.  즉, 입력의 크기와 실행시간의 관계를 의미(f(n)=n) | n의 값이 커질수록 실행시간도 늘어난다.(f(n)=n*n | 실행시간이 n의 제곱일 수도 있다. f(n) = 1 | n이 커져도 실행 시간에는 아무런 영향을 받지 않기에 항상 상수일 수 있다. (간단하게 표현하기 위해 1로 표시)f(n)이 완전이 다를 수도 있다. 빅오 표기법의 필요성여러가지 코드를 일반적으로 서로 비교하고 성능을 평가..

[프로그래머스] 문자열 정렬하기(1) | JS

문제문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.해결 과정function solution(my_string) { let emptyValue = my_string.replace(/[a-z]/g, ''); let emptyValue2 = Array.from(String(emptyValue), Number); return emptyValue2.sort();} replace()를 이용하여 a-z의 문자들을 my_string에서 부터 제거해줬다.그렇게 되면 값들이 숫자로 변환해야하는데 방법을 몰라서 구글링했다.  숫자를 문자열로 만들어 주기 위해 참고한 사이트 👇..

[프로그래머스] 모음 제거 | JS

문제영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.해결 과정function solution(my_string) { return my_string.replace(/['a','e','i','o','u']/g, '');} for문과 if문을 통해 이 문제를 풀고 싶었으나 답이 안나와 replace함수와 정규표현식을 이용하여 이 문제를 풀었다.

[프로그래머스] 최댓값 만들기(1) | JS

문제정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.해결 과정function solution(numbers) { let answer = []; let temp = 0; let temp2; let numSort; let realAnswer=1; for(let i = 0; i  numbers의 배열을 오름차순으로 정렬한다. 그뒤에 배열을 pop으로 꺼낸다음에 빈배열인 temp2에 저장해둔다.그리고 push해서 저장한 배열을 반복하기 위해서 for문을 이용해 realAnswer에 곱해 저장해준다. 새롭게 알게된 점function solution(numbe..

[프로그래머스] 합성수 찾기 🔢 | JS

문제약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요.해결 과정function solution(n) { let answer = 0; for(let i = 1; i  이중for문을 활용해 문제를 풀었다. 외부 for문의 i는 자연수가 증가되는 for문이다. 자연수 n이 i와 같을때까지 for문은 계속 돈다.내부 for문의 경우 j = 2부터 시작한다. 2부터 시작하는 이유는 i로 나누기 위해서 이고 i보다 숫자가 작을 때까지 계속된다.if문안에 break를 작성해야만 값이 제대로 출력이되었다.if문안에 break를 작성한 이유는 j에서의 반복을 없애기 위해서 작성했다고 이해를 했다..

[프로그래머스] 주사위의 개수 🎲 | JS

문제머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요.해결 과정function solution(box, n) { let answer = 1; for (let i = 0; i  let answer에 1을 작성한 이유는 0을 작성하면 for문안에서 계속 0이 나오기 때문이다.for문에서 i는 0부터 시작해 box.length의 길이 만큼 반복한뒤 종료한다.answer에 구하고자하는 수를 곱해줘서 return을 했다.Mat..

[프로그래머스] 배열 회전시키기 🔄️|JS

문제정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.해결 과정function solution(numbers, direction) { if(direction === "right") { let numPop = numbers.pop(); numbers.unshift(numPop); } else { let numPop = numbers.shift(); numbers.push(numPop); } return numbers;} direction이 right와 같으면 numbe..

[프로그래머스] 2차원으로 만들기 ✌︎ | JS

문제정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요.num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다.해결 과정구글링을 통해서 문제를 해결했다. function solution(num_list, n) { let answer = []; while(num_list.length) answer.push(num_list.splice(0, n)) return answ..

728x90