문제https://school.programmers.co.kr/learn/courses/30/lessons/120866 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이배열을 돌면서, 1이 나오면 그 주변을 x로 변경한다. 단 1이 적혀있는 경우에는 1을 유지한다.배열을 다 순환한 다음에 0의 갯수를 세어 반환한다.function solution(board) { board.forEach((line, i) => { line.forEach((cell, j) => { if (cell === 1) { // 왼쪽 if (j ..
javascript
문제https://school.programmers.co.kr/learn/courses/30/lessons/181916?language=javascript 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이주사위값을 key, 해당 주사위 값의 갯수를 value로 객체를 만든다. function solution(a, b, c, d) { //{주사위값 : 갯수}로 정리 const diceValue = [a, b, c, d].reduce((acc, cur) => { acc[cur] = acc[cur] ? acc[cur] + 1 : 1; return ..
문제https://school.programmers.co.kr/learn/courses/30/lessons/120808 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이공통 분모를 맞춰준 후 최대공약수로 나누어준다.function solution(numer1, denom1, numer2, denom2) { //분자와 분모를 공통 분모로 만들어주기 const denom = denom1 * denom2; const numer = numer1 * denom2 + numer2 * denom1 //분자와 분모를 최대공약수로 나눠주기 const gcd = (a..
문제https://school.programmers.co.kr/learn/courses/30/lessons/120923 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이알고리즘을 빠르게 풀려면.....수학적 사고가 필요하다. 연속된 수의 총합을 알기때매 첫째항을 구하기 위해 등차수열의 합 공식을 이용한다.공차는 연속된 숫자이므로 => +1 총합은 total , n은 몇번째 항 => num 이 된다. 위의 공식에 맞게 식을 정리해보면 total = {2a + (num-1) }* num/2 가 된다. 여기서 a만 남기고 식을 정리하면 다음과 같다. 첫째항을 구..
문제https://school.programmers.co.kr/learn/courses/30/lessons/120924 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이연속되는 숫자의 차이가 일정하면 등차, 비율이 일정하면 등비이다. 구조분해 할당으로 3개를 꺼내 차이가 일정한지 비교한다. => 일정하면 등차, 아니라면 등비function solution(common) { //등차 또는 등비 수열 const [a, b, c] = common; if (b - a === c - b) { //등차 수열 return common[common.len..
문제https://school.programmers.co.kr/learn/courses/30/lessons/120812 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이key는 해당 숫자, value는 갯수 를 가지는 객체를 만든다. 그리고 객체를 갯수 순서대로 정렬해서 조건에 맞게 비교한다.function solution(array) { const obj = {}; array.forEach((element) => { obj[element] = obj[element] ? obj[element] + 1 : 1; }); //value가 큰 순서대로..
문제https://school.programmers.co.kr/learn/courses/30/lessons/181952?language=javascript 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이const readline = require('readline');const rl = readline.createInterface({ input: process.stdin, output: process.stdout});let input = [];rl.on('line', function (line) { input = [line];}).on('c..
문제https://school.programmers.co.kr/learn/courses/30/lessons/181871 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이반복문을 돌려서 해당 인덱스 ~ 끝까지 를 범위로 하고 문자열이 있다면 count를 증가시키기이때 같은 위치가 중복으로 카운팅 될 수도 있으니 집합으로 넣어준다! (집합은 중복을 알아서 제거)그리고 마지막에 size(특정 문자열의 시작 인덱스 갯수)를 반환한다.function solution(myString, pat) { let count = new Set(); for (let index..
문제https://school.programmers.co.kr/learn/courses/30/lessons/181872?language=javascript 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이"특정문자로 끝나는 가장 긴 문자열" 보자마자 든 생각은 그 문자열을 뒤에서 부터 찾는다.lastIndex 메소드를 이용해서 찾은 다음, 해당 인덱스까지 끊어주고 뒤에 특정문자를 붙여준다. 코드로 작성해보자.function solution(myString, pat) { const lastIndexOf = myString.lastIndexOf(pat); ..
문제https://school.programmers.co.kr/learn/courses/30/lessons/181893 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이배열을 돌면서 조건에 맞게 slice로 잘라낸걸 다시 할당해준다.이때 주의할 점은 slice는 배열을 자를때 end 인덱스 앞으로 잘린다는 사실 기억해야 된다.function solution(arr, query) { for (i = 0; i