[TIL] 카테고리/알고리즘 문제풀기
-
[자바스크립트] 프로그래머스 Lv.1 최소직사각형[TIL] 카테고리/알고리즘 문제풀기 2022. 5. 17. 08:50
let sizes = [[60, 50], [130, 70], [60, 30], [80, 40]] let answer = 0 let h = 0 for (i=0; i item.sort((a, b) => b - a)); // let hMax = Math.max.apply(null, sizes.map((item) => item[0])); // let vMax = Math.max.apply(null, sizes.map((item) => item[1])); // return hMax * vMax; 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 progr..
-
[자바스크립트] 프로그래머스 Lv.1 하샤드 수[TIL] 카테고리/알고리즘 문제풀기 2022. 5. 16. 09:59
answer = x % x.toString().split('').reduce(function(sum,num){return sum*1+num*1}) === 0 // x를 문자열로 -> 한글자씩 쪼개기 -> 하나씩 더하기 (*1로 숫자로 만듬) -> 나머지가 0인지 검증 지문이 긴 것 치고 딱히 어려울 건 없는 내용이어서... 후다닥 풀었다! 코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr
-
[자바스크립트] 프로그래머스 Lv.1 콜라츠 추측[TIL] 카테고리/알고리즘 문제풀기 2022. 5. 16. 09:58
while (num != 1) { // num이 1이 되기 전까지만 반복한다 if (count === 500) { count = -1; break; // 500번 작동했다면 반환값을 -1로 하고 강제 종료 } else if (num % 2 === 0) { num /= 2 //기본조건이 충족되었다면, 짝수일때는 숫자를 2로 나누고 } else { num = num * 3 + 1 } // 홀수일떄는 숫자*3+1 을 해준다 count++ // 카운트가 1씩 올라간다. } https://programmers.co.kr/learn/courses/30/lessons/12943 코딩테스트 연습 - 콜라츠 추측 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면,..
-
[자바스크립트] 프로그래머스 Lv.1 제일 작은 수 제거하기[TIL] 카테고리/알고리즘 문제풀기 2022. 5. 16. 09:56
if (arr.length > 1) { // 배열의 길이가 1보다 큰 경우에만 arr.splice(arr.indexOf(Math.min.apply(null,arr)),1) // 가장 작은값의 인덱스를 찾아 삭제시킵니다. } else { arr[0] = -1 } // 배열의 길이가 1이하면 [-1]이 리턴됩니다. https://programmers.co.kr/learn/courses/30/lessons/12935 코딩테스트 연습 - 제일 작은 수 제거하기 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1 programmers.co.kr
-
[자바스크립트] 프로그래머스 Lv.1 정수 제곱근 판별[TIL] 카테고리/알고리즘 문제풀기 2022. 5. 16. 09:55
if (Math.sqrt(n)%1 === 0) { //n의 제곱근이 정수라면 answer = (Math.sqrt(n)+1) ** 2 // 정답은 n의 제곱근+1을 제곱한 값이다 } else { answer = -1} //만약 아니라면, 정답은 -1 이다. 제곱근 어떻게 구해줘야 하나 .. 수학공부 다시해야하나.. 정말 한참을 고민하다가 .... 그냥 제곱근을 구해주는 메서드가 있다는 걸 알게되었다. ....... 허무해 https://programmers.co.kr/learn/courses/30/lessons/12934 코딩테스트 연습 - 정수 제곱근 판별 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고,..
-
[자바스크립트] 프로그래머스 Lv.1 정수 내림차순으로 배치하기[TIL] 카테고리/알고리즘 문제풀기 2022. 5. 16. 09:53
let answer = n.toString().split('').sort(function(a,b){return b-a}).join('')*1 //주어진 숫자를 -> 문자열 -> 배열로 바꾸고 -> 정렬 -> 합쳐서 -> 다시 문자열로 이전 문제와 푸는 과정이 상당히 비슷했다. 단순히 숫자 배열을 바꾸고 문자열로 돌려주는 것이라 어렵지 않았다 https://programmers.co.kr/learn/courses/30/lessons/12933 코딩테스트 연습 - 정수 내림차순으로 배치하기 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이 pr..
-
[자바스크립트] 프로그래머스 Lv.1 자연수 뒤집어 배열로 만들기[TIL] 카테고리/알고리즘 문제풀기 2022. 5. 16. 09:01
let answer = n.toString().split('').reverse() //주어진 숫자를 -> 문자열 -> 배열로 바꾸고 뒤집기 for (i = 0; i < answer.length; i++) { answer[i] = answer[i]*1 // 값을 숫자로 만들어주기; } for문 안쓰고 그냥 join 한다음 숫자로 바꾸는게 나았을 것 같다. https://programmers.co.kr/learn/courses/30/lessons/12932 코딩테스트 연습 - 자연수 뒤집어 배열로 만들기 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입..