[Programmers]야근 지수/JS
·
Algorithm/Programmers
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 야근 피로도를 최소한 값을 리턴해야 하는 문제이다. 먼저 works 배열을 내림차순으로 정렬해주고 가장 큰값과 다음 값을 비교해서 차이만큼 빼줘야겠다고 생각했다. 빼준 다음 다시 정렬하는 반복문을 n이 0일때까지 반복하면 되겠다라고 생각하고 코드를 작성했다. 실패코드 function solution(n, works) { var answer = 0; works.sort(functi..
[Programmers]캐시/JS
·
Algorithm/Programmers
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/17680# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 가장 먼저 들어온 요소 순서로 배열에 저장해주고, 배열에 존재하는지 확인한다. 예를 들어 캐시 크기가 2이고 ["Jeju", "Pangyo", "Jeju", "Seoul"]이 들어오면 ["Jeju", "Pangyo"] 순서로 저장하고, 그 다음 들어오는 Jeju를 뒤에 저장해준 뒤 제일 앞의 Jeju를 빼준다 -> ["Pangyo", "Jeju"] Seoul이 들어오면 제일 뒤..
[Programmers]등굣길/JS
·
Algorithm/Programmers
⭐️ 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ⭐️ 접근방법 문제를 읽자마자 고등학교 확통이 생각났다. 제일 윗줄과 왼쪽줄을 1로 채우고, 아래로 내려가면서 위의 값과 왼쪽 값을 더해주는 방식으로 풀었다. 물에 잠긴 지역(puddles)가 있는 곳은 0으로 채워줬다. ⭐️ 첫번째 시도 function solution(m, n, puddles) { var answer = 0; const NUM = 1000000007; let dp..
[Programmers]다트 게임/JS
·
Algorithm/Programmers
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/17682 접근방법 문제에 적힌 조건들만 잘 지켜주면 딱히 어려울게 없는 문제였다! 입력된 문자열인 dartResult를 숫자(0 ~ 9) / (S, D, T) / (*, #)로 구분해준다. 숫자를 따로 저장해뒀다가 S이면 1제곱, D이면 2제곱, T이면 3제곱을 해준다. (필수) *이면 현재 점수와 이전 점수에 두배를 해주고, #이면 현재 점수에 -1을 곱해준다. (옵션) 정답코드 function solution(dartResult) { var answer = 0; let score = []; // 점수를 저장해 둘 배열 let index = 0; // 점수를 저장해 둔 배열의 인덱스 let..
[Programmers]롤케이크 자르기/JS
·
Algorithm/Programmers
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 배열을 잘라서 두 배열에 있는 원소 종류가 몇 개인지 구한 다음 같으면 answer + 1 해주면 되겠구나. 어쩐지 단순하다 싶었다.. 오답 function solution(topping) { var answer = 0; for (let i = 1; i < topping.length; i++) { let front = topping.slice(0, i); let back = t..
[Programmers]문자열 압축/JS
·
Algorithm/Programmers
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 문자열 단위를 1부터~ 문자열 길이의 절반까지만 지정해서 압축하면 되겠다라는 생각이 가장 먼저 떠올랐다. slice 함수를 사용해서 문자열 단위로 잘라서 비교하고 (slice() -> 원본에 영향X, splice() -> 원본에 영향O 또 까먹어서 또 구글링해봄ㅋ) 반복되는 것들을 스택에 저장해야겠다! 결론부터 말하자면 스택은 필요없었따... 반복되는 문자열이 무엇인지보다는 몇 ..