본문 바로가기

junior developer :)/알고리즘 & 코딩테스트20

알고리즘 (n개 중 3개의 요소를 곱해 나올 수 있는 최대값 구하기(sort()) Q. 정수를 요소로 갖는 배열을 입력받아 3개의 요소를 곱해 나올 수 있는 최대값을 리턴해야 합니다. 내가 시도한 방법 길고 길고...for문을 3번 돌려 모든 요소를 다 곱한 다음 전 곱한 값과 비교해서 더 큰 값을 지정해주는 방식으로 해보려고 했다 하지만 요소가 4개인 경우 경우의 수 (123,124,134,234) 5개인 경우(123,124,125,134,145,234,235,245,345) ... 일일히 다 곱하기엔 시간이 너무 오래걸릴 듯 싶었다 const largestProductOfThree = function (arr) { // n개중 3개를 곱해 나올 수 있는 최대값 리턴 let maxMul = 1 let multi = 1 // let multi2 = -1 if(arr.length ===.. 2022. 10. 21.
재귀함수에 대해서_factorial (+ 논리 곱 & 논리 합) 재귀함수 재귀의 사전적 정의는 "원래의 자리로 되돌아가거나 되돌아 옴"이다. 하지만 이렇게 된 정의는 전혀 와닿지 않는다. 재귀함수는 간단히 말하면 나 자신을 호출하는 함수이다. 이해를 쉽게 하기 위해 예시를 들어보자면 function factorial(num) { if(num false 논리합 function or(arr) { if(arr === true) return true else if(arr.length === 0 || arr === false) return false return Boolean(arr[0] + or(arr.slice(1))) } 2022. 10. 20.
알고리즘_ 바빌로니아법으로 제곱근 구하기(toFixed()) Q. 수를 입력받아 제곱근 값을 소수점 두자리까지 리턴해야 합니다 (Math.sqrt 사용 금지) ex. 인자가 9일 때는 결과 값 3 , 인자가 6일 때는 결과 값 2.45 바빌로니아 법 제곱근을 구하는 법을 검색하다가 찾은 바빌로니아 법 원래는 수학공식이라 검색하니 알 수 없는 공식만 나와 있을 뿐... 간단하게 생각하면 a = (a + (구하려고 하는 값/ a)) /2 로 생각하면 된다. 이해를 위해 계산기로 직접 숫자를 대입해 계산해봤다 6의 제곱근을 2자리수까지 구해보자 (2 + (6 / 2)) / 2 = 2.5 (2.5 + (6 / 2.5)) / 2 = 2.45 (2.45+ (6 / 2.45)) / 2 = 2.4494897959 (2.4494897959+ (6 / 2.4494897959)) /.. 2022. 10. 14.
알고리즘 연습_이차원 배열 안에서 특정 문자 찾기 Q. 2차원 배열(배열을 요소로 갖는 배열)을 입력받아 "A"의 위치 정보를 요소로 갖는 배열을 리턴해라 * arr[i]는 'A' 또는 'B' 만을 요소로 갖는다 ** 항상 한개의 문자열 'A'가 존재한다 - 접근 방식 제일 밖에 있는 배열을 for문을 통해 돌면서 안에 해당 문자가 있는지 확인한 뒤 ( indexOf ) A 열의 index 번호를 새로운 배열 뒤에 추가한다(push) 배열에 맨 앞 인덱스에 해당 인덱스 번호를 추가한다(unshift) - 나의 풀이 방식 function findA(arr) { let result = [] for(let i = 0; i 2022. 10. 14.
728x90
반응형