programmers6 프로그래머스 Lv.2 올바른 괄호 (스택/큐) (JavaScript) 자바스크립트로 프로그래머스 문제 풀기 문제 - 출처: https://school.programmers.co.kr/learn/courses/30/lessons/12909 괄호의 짝이 올바르게 지어졌는지 확인하는 문제로, 스택/큐 관련 문제이다. 풀이 나의 풀이 function solution(s){ var answer = true; let tmp = []; //임시배열 생성 let mark1 = 0, mark2 = 0; //'(' 수와 ')' 수를 카운팅 if(s.length % 2 != 0) answer = false; //길이가 홀수이면 무조건 false for(let i = 0; i < s.length; i++) { if(s[i] == '(') { tmp.push(s[i]); //'(' 는 무조건 t.. 2022. 9. 18. 프로그래머스 Lv.2 이진 변환 반복하기 (JavaScript) 자바스크립트로 프로그래머스 문제 풀기 문제 - 출처: https://school.programmers.co.kr/learn/courses/30/lessons/70129 문제에 변환 단계가 여러단계라서 헷갈릴 수 있다. 이 글에는 생략했으나 문제 링크로 이동시 입출력 예시에 대한 설명이 자세히 나와 있다. 문제를 자세히 읽어보면, 변환해야 하는 것이 "문자열 → 0을 제거(기록필요) → 제거하고 남은 수의 자릿수 계산 → 자릿수를 2진수로 변환" 이렇게 진행하는 것을 한번의 변환으로 보고, 이 변환을 2진수가 1이 될때까지 반복한다. 최종적으로 총제거한 0의 수와 변환 횟수를 구하면 된다. 풀이 나의 풀이 function solution(s) { var answer = [0, 0]; //정답의 초기값을 모.. 2022. 9. 17. 프로그래머스 Lv.1 최대공약수와 최소공배수 (JavaScript) 자바스크립트로 프로그래머스 문제 풀기 문제 - 출처: https://school.programmers.co.kr/learn/courses/30/lessons/12940 두 수의 최대공약수와 최소 공배수를 구하는 문제중 가장 기본 문제이다. 풀이 최대공약수, 최소공배수가 응용된 문제들이 좀 보여서 정리를 위해 기본 문제를 풀어보았다. 최대공약수 / 최소공배수 란? : 주어진 수들의 공통 약수 / 배수에서 가장 큰 값 / 작은값 이다. 그래서 이 정의를 이용한 방법도 있으나, 유클리드 호제법을 사용하는것이 유리하므로 두가지 경우를 모두 정리해보았다. for문 사용 function solution(n, m) { var answer = []; let a = Math.min(n, m); let b = Math.m.. 2022. 9. 17. 프로그래머스 Lv.1 로또의 최고 순위와 최저 순위 (JavaScript) 자바스크립트로 프로그래머스 문제 풀기 문제 - 출처: https://school.programmers.co.kr/learn/courses/30/lessons/77484 프로그래머스 2021 Dev-Matching: 웹 백엔드 개발자(상반기) 기출문제입니다. [문제 설명] 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위당첨 내용 1 6개 번호가 모두 일치 2 5개 번호가 일치 3 4개 번호가 일치 4 3개 번호가 일치 5 2개 번호가 일치 6(낙첨) 그 외 로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되.. 2022. 9. 10. 소수 구하기 (자바스크립트) 소수 (Prime number) 소수는 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수이다. 정수론에서 매우 중요한 주제이며, 특히 현대사회에서 암호학에서 많이 사용하여서 매우 중요해졌다. 출처: 위키백과 소수 판별하기 (JavaScript) 소수를 판별하는 방법은 여러가지가 있다. 그 중 아래의 두가지를 소개한다. 이 판별법은 입력값이 소수인지 아닌지를 판별하는 방법이다. 이를 응용해서 소수의 개수를 구할수도 있다. 반복문 (제곱근으로 최적화 가능) 에라토스테네스의 체 1. 반복문 1) 가장 기본적인 방법으로 반복문을 수행하면서 1이외의 수로 나누어 떨어지지 않는지 확인한다. 이때 시간복잡도는 O(n)이 된다. function isPrime(num) { if(num === 1) return .. 2022. 9. 3. 프로그래머스 Lv.1 같은 숫자는 싫어 (JavaScript) 자바스크립트로 프로그래머스 문제 풀기 문제 - 출처: https://school.programmers.co.kr/learn/courses/30/lessons/12906 배열안에 같은 숫자가 연속되지 않게 하는 문제이다. 풀이 나의 풀이 function solution(arr) { var answer = []; for(let i = 0; i < arr.length; i++) { if(answer[answer.length - 1] === arr[i]) continue; answer.push(arr[i]); } return answer; } 배열을 순회하면서 answer 배열 마지막의 값이 집어넣으려는 값과 동일하지 않을때만 push한다. 다른 사람들 풀이 function solution(arr) { retu.. 2022. 8. 27. 이전 1 다음