SIU
article thumbnail
[프로그래머스 레벨3] 입국심사 [Javascript/이진탐색]
JavaScript/알고리즘(JS) 2023. 3. 5. 01:29

문제 유형 : 이진탐색 https://school.programmers.co.kr/learn/courses/30/lessons/43238?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 이진 탐색은 범위가 있어야하고 범위라는 건 시작점(최솟값)과 끝점(최대값)을 알아야 한다. times 배열에서 최댓값을 구할 때 sort 대신 Math.max(...배열)을 사용해서 구했다. sort는 n log n 이지만 Math.max는 n 의 시간복잡도를 가진다. 최솟값은 한 명을 심사하는데 걸리는 시간이 1분이상이므로 1..

article thumbnail
[프로그래머스 레벨2] 위장 [Javascript/해쉬, 객체]
JavaScript/알고리즘(JS) 2023. 3. 4. 16:23

https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전체 코드 1. 객체 function solution(clothes) { let answer = 1; let ch = {} clothes.forEach((it) => { ch[it[1]] = ch[it[1]] ? ch[it[1]] + 1 : 1; }) //console.log(ch) // { headgear: 2, eyewear: 1 } // values로 계산 const values = Obje..

article thumbnail
[프로그래머스 레벨1] 폰켓몬 [Javascript/해쉬]
JavaScript/알고리즘(JS) 2023. 3. 4. 14:13

문제 유형 : 해쉬 https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 활용 만약에 중복되는 원소를 묻는 문제가 나왔다면 Set 객체의 size와 배열의 length의 차이를 빼주면 중복 원소를 알 수도 있겠다. 문제 도식화 전체 코드 function solution(nums) { // 뽑을 수 있는 포켓몬 : 길이/2 let max = nums.length/2; // 폰켓몬 종류 : 중복 숫자 제외 const hash = new Set(num..

article thumbnail
[프로그래머스 레벨1] 완주하지 못한 선수 [Javascript/해쉬, 정렬]
JavaScript/알고리즘(JS) 2023. 3. 4. 05:47

문제 유형 : 해쉬, 정렬 https://school.programmers.co.kr/learn/courses/30/lessons/42576?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근법 두 배열에서 서로 다른 원소를 찾으면 된다. [첫 번째 풀이]는 배열을 정렬해주고 다른 요소를 발견하면 return 시킨다 participant(참가자) 배열과 completion(완주자) 배열 모두 sort()를 이용해서 정렬시키자. 그리고 인덱스 0부터 두 배열을 비교하면 for문 한 번으로 문제를 해결할 수 있다. part..

article thumbnail
[프로그래머스 레벨3] 베스트 앨범 [Javascript/해쉬, 객체]
JavaScript/알고리즘(JS) 2023. 3. 4. 02:30

문제 유형 : 해쉬, 객체 https://school.programmers.co.kr/learn/courses/13213/lessons/91081 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 과정 1. 우선 장르별로 총 재생횟수의 합을 저장해놓은 후, 재생 횟수별로 내림차순 정렬을 해놓는 과정이 필요하다. ex) [{pop:3100},{classic:1450}]과 같은 형태 2. 고유번호, 장르, 재생횟수가 한데에 모아져있는 객체가 필요하다. [ { genre: 'classic', index: 0, playCnt: 500 }, { genre:..

article thumbnail
[ALGO#08] 프로그래머스 레벨2 프린터 [Javascript/큐]
카테고리 없음 2023. 3. 3. 21:19

문제 유형 : 큐 https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 도식화 핵심 point 1) locaion 인덱스가 요소들의 삽입 및 삭제에 따라 이동한다 2) 배열에서 가장 큰 값 찾기 = 우선 순위 탐색 if( first < Math.max(...priorities)) { 전체 코드 function solution(priorities, location){ let answer = 0; let first = null; // locatio..

article thumbnail
[ALGO#07] 프로그래머스 레벨2 귤 고르기 [Javascript]
JavaScript/알고리즘(JS) 2023. 3. 1. 20:50

https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제유형 : 해쉬, 정렬 function solution(k, tangerine) { // 서로 크기가 다른 귤 객체 const sizes = {}; // key(해당 귤 크기)가 없으면 추가, 있으면 기존 개수 증가 tangerine.forEach((it) => sizes[it] ? sizes[it]++ : sizes[it] = 1); // 객체의 value 값(귤 개수만 가져옴) const ..

article thumbnail
[ALGO#06] 프로그래머스 레벨2 기능개발 [Javascript]
JavaScript/알고리즘(JS) 2023. 2. 28. 03:04

# [2023.02.28] PGS_LV2_42586_기능개발 https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 스택과 큐를 활용하는 대표 유형이다. - 처음에 answer 배열에 현재 진행정도(progresses)에서 speeds와의 수식 관계를 처리하면서 k을 answer에 넣는다. - (100-num) + speed * k >= 100 - k = Math.ceil((100-num) / (speeds[idx])) // 소수점 올림 처리 필수..