프로그래밍 이론/알고리즘 우주개발자(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 이하의 자..
프로그래밍 이론 우주개발자(SpaceDev) 2020. 1. 14. 19:05
개발 공부 또는 컴퓨터 공학을 전공하거나 실무에서 일할 때 또는 면접을 볼 때 심심치 않게 나오는 용어들이 있습니다. 그 용어 중 하나인 MVC 패턴이란 것을 알아보도록 하겠습니다. 먼저 디자인 패턴에 대해서 살펴봅시다. 디자인 패턴이란 많은 엔지니어가 겪는 반복적인 특정 문제들을 규약화된 공법으로 간단하고, 재사용성을 높일 수 있도록 해결해 줄 수 있는 규칙이면서, 개발자들끼리 의사전달의 효율성을 높이는 기법이라고 생각하시면 됩니다. 예를 들어 기온이 영하로 내려가면 사람들은 추위를 느낍니다. 이러한 반복적인 문제를 해결하기 위해 뛰어난 발명가들은 핫팩이란 것을 만드는 방법을 공식화했고 사람들은 언제든 만들어진 핫팩을 가져다 씁니다. 즉 핫팩을 만드는 문서를 디자인패턴이고 핫팩을 만들고 가져다 쓰는 사..