JS/알고리즘(코딩테스트) 80

프로그래머스, 자바스크립트) 최대공약수와 최소공배수

문제https://school.programmers.co.kr/learn/courses/30/lessons/12940 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이최대공약수와 최소공배수를 구할때는 유클리드 호제법을 알면 쉽게 구할 수 있다.유클리드 호제법(-互除法, Euclidean algorithm) 또는 유클리드 알고리즘은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란 말은 두 수가 서로(互) 상대방 수를 나누어(除)서 결국 원하는 수를 얻는 알고리즘을 나타낸다.2개의 자연수(또는 정식) a, b에 대해서 a를..

프로그래머스, 자바스크립트) 직사각형 별찍기

문제https://school.programmers.co.kr/learn/courses/30/lessons/12969 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이문자를 a번 반복한 것을 b번 만큼 출력해준다.process.stdin.setEncoding('utf8');process.stdin.on('data', data => { const n = data.split(" "); const a = Number(n[0]), b = Number(n[1]); for(let i = 0; i

프로그래머스, 자바스크립트) 행렬의 덧셈

문제https://school.programmers.co.kr/learn/courses/30/lessons/12950 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이두 배열의 크기가 같으니 한 배열을 기준으로 돌면서 값을 업데이트한다.function solution(arr1, arr2) { return arr1.map((row, i) => row.map((val, j) => val + arr2[i][j]) );}

프로그래머스, 자바스크립트) 같은 숫자는 싫어

문제https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이필터를 걸어 다음 숫자와 같은지 판별한 후 같지 않는 숫자만 넘긴다.function solution(arr) { return arr.filter((v, i) => v !== arr[i + 1]);}

프로그래머스, 자바스크립트) 문자열 다루기 기본

문제https://school.programmers.co.kr/learn/courses/30/lessons/12918 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이정규식으로 길이가 6또는 4인지, 숫자만 들어가있는지 판단한다.isNaN으로 생각할 수도 있지만 "12e", "16x1" 같은 애들도 숫자로 판단하기에 예외처리를 해줘야된다. 정규식 풀이는 다음과 같다.^: 문자열의 시작을 나타냅니다.\d: 숫자를 나타내는 메타 문자입니다. [0-9]와 동일합니다.{6}: 바로 앞의 문자(여기서는 \d, 즉 숫자)가 정확히 6번 반복되어야 함을 의미합니다.$:..

프로그래머스, 자바스크립트) 부족한 금액 계산하기

문제https://school.programmers.co.kr/learn/courses/30/lessons/82612 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이1부터 시작해서 count만큼 금액을 누적한 후 계산해준다.function solution(price, money, count) { let total = 0; for (i = 1; i money ? total - money : 0;}

프로그래머스, 자바스크립트) 문자열 내림차순으로 배치하기

문제https://school.programmers.co.kr/learn/courses/30/lessons/12917 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이대문자는 소문자보다 작은것으로 간주하고, 알파벳순서로 앞 글자가 뒤로 가야하니 sort()를 해준 다음 뒤집어줬다.마지막은 join으로 합쳐서 문자열로 만들어주기function solution(s) { return [...s].sort().reverse().join("")}

프로그래머스, 자바스크립트) 약수의 개수와 덧셈

문제https://school.programmers.co.kr/learn/courses/30/lessons/77884 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이약수를 구하는 함수를 만든 후 솔루션 함수 안에서 홀짝 판별해준다.function countDivisors(n) { let count = 0; for (let i = 1; i  다른 풀이제곱근이 정수면 약수가 홀수다.ex )12 => 1,2,3,4,6,12 , 루트12는 3.4xx로 정수가 아니다. 약수의 개수또한 짝수16 => 1,2,4,8,16, 루트 16은 4로 정수. 약수의 개수 홀..

프로그래머스, 자바스크립트) 내적

문제https://school.programmers.co.kr/learn/courses/30/lessons/70128 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이배열을 순회하면서 더해준다.function solution(a, b) { //내적 구하기 let answer = 0; for (let i = 0; i

프로그래머스, 자바스크립트) 수박수박수박수박수박수?

문제https://school.programmers.co.kr/learn/courses/30/lessons/12922 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이수, 수박, 수박수, 수박수박, 이런식으로 수박을 n에 따라 표현한다.짝수일때는 수박을 n/2번 반복해주면 되지만 n이 홀수일때는 뒤에 "수"를 덧붙여줘야 하므로 조건문으로 처리해 준다.function solution(n) { let result = "수박".repeat(Math.floor(n / 2)); if (n % 2) { result += "수"; } return result;}