알고리즘
-
[알고리즘] 데이터 구조, 자료 구조 분류, 알고리즘, 성능 분석, 누적합알고리즘 2023. 1. 25. 16:43
자료구조 : '데이터의 저장'을 담당하는 것을 말한다. 분류 선형 구조 ) 리스트 , 큐, 스택 비선형 구조 ) 그래프, 트리 파일 구조 ) 순차 파일, 색인 파일, 직접파일 단순 구조 ) 정수, 실수, 문자, 문자열 알고리즘 : 표현 및 저장된 데이터를 대상으로 하는 '문제 해결 방법'을 말한다. 성능 분석 2가지 방법 1. 시간 복잡도 : 최적의 시간 주로 빅 O을 이용한다. (빅 오메가도 있다.) O(1) < O(logn) < O(n) < O(nlogn) < O (n**2) < O(n**3) < O(2**n) 참고로 log 밑에 숨겨진 숫자는 10이다. 2. 공간 복잡도 : 메모리 분량 누적합 강의 두 개를 듣고 정리한 알고리즘이다. 1. 큰돌 누적합을 이용하면 O(n**n)이 아닌 O(n)의 시간..
-
[코딩 테스트] 프로그래머스 JS 연습 - 연속된 수의 합, 평행, 최빈값 구하기,겹치는 선분의 길이,옹알이알고리즘/코딩 테스트 2023. 1. 24. 16:39
1. 연속된 수의 합 문제 설명 연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요. function solution(num, total) { const min = (total / num) - (num-1)/2 return new Array(num).fill(min).map((v,i)=> v+i) } 처음 이 문제를 풀었을 때, 가운데 숫자를 Math.floor(total/num)으로 구한 뒤 arr에 push하는 방식으로 풀었다. 하지만 , 이 문제는 min부터 하나씩 더하는 것이 좋다. 참고로! new Ar..
-
[코딩 테스트] 프로그래머스 JS 연습 - 다음에 올 숫자,특이한 정렬,문자열 밀기,치킨쿠폰,등수 매기기,캐릭터의 좌표알고리즘/코딩 테스트 2023. 1. 23. 16:21
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 0. 다음에 올 숫자 문제 설명 등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요. function solution(common) { //등차 수열 let 차이 = common[1] - common[0] === common[2] - common[1] ? common[1] - common[0] : false; if (차이 !== false) return common.at(-1) +차이; if (차이 === fals..
-
[코딩 테스트] 프로그래머스 JS 연습 - A로 B 만들기,2차원으로 만들기 ,소인수분해,외계어 사전,삼각형의 완성 조건(2),가까운 수, 공던지기알고리즘/코딩 테스트 2023. 1. 19. 13:16
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. A로 B 만들기 문제 설명 문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요. function solution(before, after) { const arr = before.split(''); for (let i =0; i < after.length;i++) { arr[arr.indexOf(after[i])] =""; } return arr.join('')..
-
[코딩 테스트] 프로그래머스 JS 연습 - 이진수 더하기,잘라서 배열로 저장,중복된 문자 제거,구슬을 나누는 경우의 수알고리즘/코딩 테스트 2023. 1. 18. 18:49
1. 이진수 더하기 문제 설명 이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요. function solution(bin1, bin2) { return (parseInt(bin1,2) + parseInt(bin2,2)).toString(2) } 2진수를 10진수로 만들 때 parseInt를 사용하고, 10진수를 2진수로 만들 때 toString을 사용한다. 2. 잘라서 배열로 저장 문제 설명 문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요. function solution(my_str, n) { var a..
-
[코딩 테스트] 프로그래머스 JS 연습 - 개미군단, 숨어있는 숫자의 덧셈, 직각삼각형 출력하기, 암호해독, 대문자와 소문자알고리즘/코딩 테스트 2023. 1. 17. 19:41
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 개미군단 개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요..
-
[코딩 테스트] 프로그래머스 JS 연습 - 각도기, 짝수홀수 개수, 최댓값 만들기(1), 특정 문자 제거알고리즘/코딩 테스트 2023. 1. 16. 15:11
https://school.programmers.co.kr/learn/courses/30/lessons/120829 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 각도기 각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요. 예각 : 0 x { var arr = [0,0] num_list.forEach(x => arr[x%2] +..