알고리즘
![[python] SWEA - 3752. 가능한 시험 점수](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3I91v%2FbtqGklRyt7z%2FTV396B82zOiiU0KOkznxC1%2Fimg.png)
[python] SWEA - 3752. 가능한 시험 점수
문제 해결 1. D4 | DP 2. 얻을 수 있는 최대점수를 길이로 하는 리스트를 만든다 3. 리스트안의 값은 내가 점수를 얻을 수 있으면 1, 없으면 0으로 한다 4. 점수를 하나씩 받아서 리스트를 뒤에서부터 탐색한다 (1) 1을 만나면(내가 이미 얻을 수 있는 점수 ex. lst[3] == 1 이면 3점은 이미 얻을 수 있는 점수이다.) 내가 꺼낸 점수를 더해서 그 지점을 1로 만들어준다.(ex. score == 2 이면 lst[5] = 1) 5. 리스트에서 1의 갯수를 세어주면 정답. 💨 풀이 예시] 새로 받는 점수는 2, 3, 5이다. 얻을 수 있는 점수는 리스트는 lst = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 이렇게 구성한다. (0점은 처음부터 가능하므로 0번 인덱스의 ..
![[JavaScript] 프로그래머스 - 프린터](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZm6pq%2FbtqF7t3EDkI%2F7KOWUFAXlMxC9BMS8lLdmk%2Fimg.png)
[JavaScript] 프로그래머스 - 프린터
문제 해결 1. 인쇄되는 조건과 내 문서의 위치 그리고 인쇄가 몇번 됐는지 체크하며 문제를 해결한다. 2. 맨 앞의 문서를 꺼내고 우선순위가 제일 높은지 확인한다. 3. 우선순위가 제일 높다면 인쇄를 하고 카운트를 올려준다. 4. 아니라면 꺼낸 문서를 맨 뒤에 집어 넣는다. 5. 문서를 꺼낼 때마다 내문서의 위치를 바꿔준다. 6. 다시 2번으로 돌아가 반복한다. 😎 스택/큐 문제이다. 소스 코드 function solution(priorities, location) { var answer = 0; // 인쇄를 몇번 했는지 var cnt = 0 // 내문서의 위치 var myDoc = location while (priorities.length > 0) { // 맨 앞의 문서를 꺼낸다 var c = pri..
![[python] 프로그래머스 - 동굴 탐험 (2020 카카오 인턴십)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdBGjpO%2FbtqF15BzRsE%2FpttZUbCIqRyHjoR45hD1bK%2Fimg.png)
[python] 프로그래머스 - 동굴 탐험 (2020 카카오 인턴십)
문제 해결 1. 그래프 문제 2. 주어진 path 로 인접리스트를 만든다. 3. 주어진 order 로 딕셔너리를 만든다. (1) a 를 방문해야 b 를 방문할 수 있다. (2) a를 키, b를 밸류로 하는 딕셔너리를 만든다 | a를 방문했을 때 b를 방문할 수 있다 라는 것을 찾기 위해| (3) b를 키, a를 밸류로 하는 딕셔너리를 만든다 | b를 방문하려고 하는데 a를 이미 방문했는지 알아보기 위해| (4) a가 0인 경우(선행 조건이 0번방을 방문하는 것) 이므로 값을 0으로 해준다.) (5) b가 0인 경우(0번방을 방문하기 위해 다른 방을 방문하고 와야 하므로 처음부터 방에 들어가지 못한다.) 4. visited 배열(0과 1)을 만든다. 방문했는지 안했는지 알아보기 위해 5. 큐를 만들어 BF..
![[JavaScript] 프로그래머스 - 영어 끝말잇기(Summer/Winter Coding(~2018))](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2ktMO%2FbtqGbOY5YFG%2FXH3fyMKuaJUQo0GJRR3UKk%2Fimg.png)
[JavaScript] 프로그래머스 - 영어 끝말잇기(Summer/Winter Coding(~2018))
문제 해결 1. 앞단어의 뒷글자와 뒷단어의 앞글자를 비교하며 맞는지 확인하고 2. 사용한 단어는 따로 배열에 담아두고 확인한다. 3. 조건에 맞지 않는다면 게임을 종료 🌦 배열을 인덱싱하는 문제 🐱🏍 배열이나 스트링의 맨 뒤 인덱스를 선택하는 방법 파이썬에서는 보통 list[-1] 로 맨뒤 인덱스를 선택할 수 있으나 자바스크립트에서는 array[array.length - 1] 로 맨뒤 인덱스를 선택한다. 소스 코드 function solution(n, words) { var answer = [0, 0]; // 이미 사용한 단어를 넣을 배열 var usedWords = [] // 1번 플레이어부터 시작 usedWords.push(words[0]) for (let i = 1; i < words.length..
![[JavaScript] 프로그래머스 - 기능개발](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRB2kE%2FbtqFZOAaHGi%2FkD3FDC00DeM6VhoMdGuds1%2Fimg.png)
[JavaScript] 프로그래머스 - 기능개발
문제 해결 1. 큐/스택을 활용하는 문제! 2. 현재 진행 상황(progresses) 에 각각 속도(speeds)를 더해준다. 3. 뒤에있는 기능이 앞의 기능보다 먼저 개발 돼도 배포가 불가능 (1) 맨 앞의 기능부터 확인해 준다. (2) 맨 앞의 기능이 개발 완료 됐다면 배포한다(배열에서 제거한다.) (3) 개발 완료 되지 않았다면 2번으로 간다 🌤 큐/스택을 활용하는 문제 splice를 이용했는데 pop과 shift라는 메소드가 존재하는 것을 알게 됐다. 🛴 pop. shift var arr = [1,2,3,4,5] arr.pop() console.log(arr) // [ 1, 2, 3, 4 ] arr.shift() console.log(arr) // [ 2, 3, 4 ] pop은 배열의 마지막에 있..
![[JavaScript] 프로그래머스 - 체육복](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcwecaq%2FbtqF1b8Pviu%2FtGGAsWZtcxifGQ5yrnF9g0%2Fimg.png)
[JavaScript] 프로그래머스 - 체육복
문제 해결 1. 체육복을 잃어버린 학생이 여벌을 가지고 있는 경우를 제외 한다. 2. 체육복을 잃어버린 학생으로 for 문을 돌리며 (1) 학생보다 이전 번호의 학생이 여벌을 가지고 있다면 그냥 빌린다. (2) 학생보다 이전 번호의 학생이 여벌을 가지고 있지 않고, 다음 사람이 가지고 있다면 빌리고, 여벌을 가지고 있는 학생을 지운다. (3) 양쪽 모두 없으면 넘어간다. (4) 체육복을 빌릴 때마다 카운트를 센다. ☔ 깜빡하고 블로그를 쓰지 못했다... 늦게라도 쓴다 ㅠ 오늘은 filter를 알아보자. 🚐 filter 이 메소드는 배열에서 특정 조건을 만족하는 값(들)을 모아 다시 배열로 만드는 작업이다. var arr = [1,2,3,4,5,6,7,8,9] var newArr = arr.filter( ..