[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 또 까먹어서 또 구글링해봄ㅋ) 반복되는 것들을 스택에 저장해야겠다! 결론부터 말하자면 스택은 필요없었따... 반복되는 문자열이 무엇인지보다는 몇 ..
[Programmers]혼자 놀기의 달인/JS
·
Algorithm/Programmers
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/131130# 접근방법 문제가 길어서 문제 읽는 것부터 힘들었다.. 테스트 케이스에는 [8, 6, 3, 7, 2, 5, 1, 4]가 입력으로 들어온다. 먼저 첫번째를 선택했을 때, 두번째를 선택했을 때 ... 다 손으로 써봤다. 첫번째를 선택했다 해보자. 그리고 인덱스가 0이 아닌 1부터 시작한다고 가정한다. 인덱스를 기준으로 1 -> 8 -> 4 -> 7 이렇게 4개의 상자를 거치고, 1, 8, 4, 7 중 어떤 것을 먼저 선택하든 똑같이 4개를 거친다. 그리고 처음 선택한 인덱스의 값이 나올 때까지 반복한다! 정답코드 function solution(cards) { let answer = ..