프로그래밍 이론/알고리즘 우주개발자(SpaceDev) 2020. 10. 5. 17:35
해당 포스팅은 제가 사용하려고 만든 포스팅이므로 자세한 설명은 생략합니다. 만약 이해가 안될 시 댓글을 남겨주시면 답변드리겠습니다. 소수란, 1과 자기자신을 제외한 다른 수로 나눠지지 않는 수 입니다. 그 예로 11, 71 등이 있습니다. 이 소수를 판별하는 알고리즘을 만들어 보겠습니다. 실행함수 // 소수 판별기 function isPrime(n) { // 1이하일 경우엔 소수가 아닙니다. if (n divisor) { // 무엇이라도 0으로 떨어진다면 소수가 아닙니다. if (n % divisor === 0) return false; // 짝수일 경우를 제외한 홀수일 경우를 판단 divisor += 2; } // 모든 조건을 통과했을 경우 소수로 인정받습니다. return true; } 사용 cons..
프로그래밍 이론/알고리즘 우주개발자(SpaceDev) 2020. 10. 5. 17:25
해당 포스팅은 제가 사용하려고 만든 포스팅이므로 자세한 설명은 생략합니다. 만약 이해가 안될 시 댓글을 남겨주시면 답변드리겠습니다. 알고리즘을 풀다보면 배열의 경우의 수가 필요한 경우가 존재합니다. Python 같은 경우는 내장라이브러리인 itertools에 Permutation같은 함수가 있어서 꽤 쉽게 구해지지만 Javascript 같은 경우는 따로 내장 라이브러리가 없어서 실제 구현해야합니다. 그래서 아래와 같이 만들게 되었습니다. (더 좋은 방법이 있을거 같긴 한데... 내 머리로선 이게 한계인듯 하다...) 실행 함수 function getNumbeOfCases(numbers) { // 중복을 막기 위해서 const result = new Set(); // 재귀 함수를 통해 만든다. const ..
프로그래밍 이론/알고리즘 우주개발자(SpaceDev) 2020. 6. 10. 01:53
문제 설명 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운 종이를 구할 수 없는 상태이기 때문에, 이 종이에서 원래 종이의 가로, 세로 방향과 평행하게 1cm × 1cm로 잘라 사용할 수 있는 만큼만 사용하기로 하였습니다. 가로의 길이 W와 세로의 길이 H가 주어질 때, 사용할 수 있는 정사각형의 개수를 구하는 solutio..
프로그래밍 이론/알고리즘 우주개발자(SpaceDev) 2020. 6. 9. 21:36
문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도는 100 이하의 자..