프로그래머스
![[python] 프로그래머스 - 문자열 압축(2020 KAKAO BLIND RECRUITMENT)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvWrMm%2FbtqHoXg7Lgh%2FceUmi8Rl4KvTVkk7VBAkMK%2Fimg.png)
[python] 프로그래머스 - 문자열 압축(2020 KAKAO BLIND RECRUITMENT)
🤔문제 해결 1. Lv2 2. 리스트를 만들어 문자열을 1개, 2개, ... , n/2개 까지 쪼갰다. 문자열이 abcabcabcabcdededededede 라면 [['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c', 'd', 'e', 'd', 'e', 'd', 'e', 'd', 'e', 'd', 'e', 'd', 'e', ''], ['ab', 'ca', 'bc', 'ab', 'ca', 'bc', 'de', 'de', 'de', 'de', 'de', 'de', ''], ['abc', 'abc', 'abc', 'abc', 'ded', 'ede', 'ded', 'ede', ''], ['abca', 'bcab', 'cabc', 'dede', 'dede',..
![[JavaScript] 프로그래머스 - 베스트앨범](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdmJWgS%2FbtqGdDjpfVH%2FyPwrJRoqxCl1M90qpSC4S1%2Fimg.png)
[JavaScript] 프로그래머스 - 베스트앨범
문제 해결 1. 해시 2. 주어진 genres와 plays를 객체 형태로 만든다. (1) ex) { 장르이름: { 총 재생 횟수: 500, 노래들: [[200, 1], [300, 5]] } 3. 만들어진 객체를 총 재생 횟수로 내림차순 정렬한다. 4. 각각의 장르에서 노래를 두개씩 뽑아 answer 에 넣는다. (1) 각각의 장르에서 노래들을 꺼내 내림차순 정렬한다. (2) 그 때 재생횟수가 같다면 인덱스로 오름차순 정렬한다. (3) 정렬 후 노래를 두개 꺼내 answer 에 넣는다 (4) 만약 노래가 하나라면 정렬하지 않고 그냥 넣는다. ( 두개 일 경우에도 정렬은 필요 없으나 노래가 하나인지 그 이상인지가 중요하므로) 🌤 문제를 풀어 본 후 여러가지 풀이를 찾았다. 자바스크립트를 공부하는 목적은 알고..
![[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..
![[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] 프로그래머스 - 문자열을 정수로 바꾸기/ 서울에서 김서방찾기/ 같은 숫자는 싫어/ 문자열 내 p와 y의 개수](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FejfF22%2FbtqFVjmDzwq%2Fayr1XfCF4OUKQqNlrZz6NK%2Fimg.png)
[JavaScript] 프로그래머스 - 문자열을 정수로 바꾸기/ 서울에서 김서방찾기/ 같은 숫자는 싫어/ 문자열 내 p와 y의 개수
1. 문자열을 정수로 바꾸기 문제 해결 1. 자바스크립트의 속성을 이용하는 방법 2. 주어진 문자열에 *1을 해준다.' 🚙 String To Number 자바스크립트에서는 숫자로 이루어진 문자와 연산을 시키면 알아서 Number로 바꾸고 연산을 진행한다. a = '1234' console.log(a*1) // 1234 b = '-1234' console.log(b*1) // -1234 소스 코드 function solution(s) { return s * 1; } 2. 서울에서 김서방 찾기 문제 해결 1. for 문을 활용해 배열을 하나씩 탐색하고 if 문으로 원하는 값이 나올 때 그 인덱스를 답으로 출력한다. or 2. indexOf 함수를 이용한다. 🚖 indexOf 찾을 배열.indexOf("찾고자..
![[JavaScript] 프로그래머스 - K번째수](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk9OoD%2FbtqFURQu3Gt%2FTl3w8KZSNVc3SsTISwMRe1%2Fimg.png)
[JavaScript] 프로그래머스 - K번째수
문제 해결 1. 각 커맨드의 0,1 번째 숫자는 배열을 자르고, 2 번째 숫자는 값을 인덱스로 찾는다. 2. slice를 이용해 배열을 자른다. 3. sort()를 이용해 배열을 정렬한다. 4. 3번의 배열에서 숫자를 찾는다. 🌦 forEach, sort 에 대해서 학습해보자. 🟤 forEach arr4 = [2,5,3] arr4.forEach((n) => { console.log(n) }) // 2 // 5 // 3 forEach 안에서 함수를 정의하는 방법은 취향에 따라 알아서... 🟣 sort() arr4 = [12,2,1] arr4.sort() console.log(arr4) // 고장난다 | [1,12,2] arr4.sort((a,b) => { return a-b }) console.log(ar..