본문 바로가기

CS

(45)
[230421] 모의고사 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 내 풀이 완전탐색을 이용하여 문제를 풀라고 한다. 일단 나는 더럽게 풀었음. function solution(answers) { const result = []; const arr = [0, 0, 0]; const a = [1,2,3,4,5]; const b = [2,1,2,3,2,4,2,5]; const c = [3,3,1,1,2,2,4,4,5,5]; for(let i = 0; i <..
[230421] n^2 배열 자르기 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 첫 풀이 규칙을 찾아보고자 직접 나열해봤다. // 1 // 1 2 2 2 // 1 2 3 2 2 3 3 3 3 // 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 4 // 1 2 3 4 5 2 2 3 4 5 3 3 3 4 5 4 4 4 4 5 5 5 5 5 5ㅊ 첫 번째는 1~n 두 번째는 2가 2개, 이후 숫자들 1개씩 세 번째는 3이 3개, 이후 숫자들 1개씩 네 번째는 4가 4개, 이후 숫자들 1개씩 … function solution(n, left, right) { let answer..
[230421] 위장 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 첫 번째 풀이 (실패) 각 행은 [의상의 이름, 의상의 종류] 로 이뤄져 있으므로 ‘의상의 종류’에 따른 개수를 객체로 묶는다. 서로 다른 옷의 조합의 수를 구해야하는데, 객체가 {A: a, B: b} 라면 총 조합의 수는 a + b + a*b 다. 그래서 total이라는 변수를 두고 구했음. function solution(clothes) { const table = {}; for(let i = 0; i < clothes.length; i++) { table[clothes[i][1]] = (tab..
[230420] 캐시 문제 https://school.programmers.co.kr/learn/courses/30/lessons/17680 풀이 첫 번째 풀이 (실패) 캐시 교체 알고리즘은 LRU (Least Recently Used) 라 했으니, 가장 먼저 캐시에 들어간 도시이름이 가장 먼저 교체되는 형태라 생각해서 Queue를 활용해서 풀면 되겠다 생각했다. function solution(cacheSize, cities) { cities = cities.map(city => city.toLowerCase()); let answer = cacheSize * 5; while(cities.length > cacheSize) { if(cities.slice(0, cacheSize).includes(cities[cacheSiz..
[230419] 괄호 회전하기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/76502 풀이 첫 풀이 (실패) 아.. 생각이 안 떠올라서.. 코드 더럽게 노가다로 짜긴 했는데.. function solution(s) { if(s.length % 2 === 1) return 0; let answer = 0; for(let i = 0; i < s.length; i++) { let A = 0; let B = 0; let C = 0; for(let j = 0; j < s.length; j++) { const idx = (i + j) % s.length; if(s[idx] === '(') A++; if(s[idx] === '[') B++; if(s[idx] === '{') C++;..
[230419] 멀리 뛰기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12914 풀이 직접 계산해보니, 1 → 1 2 → 2 3 → 111 12 21 → 3 4 → 5 (문제에 의해) 5 → 122 212 221 2111 1211 1121 1112 11111 → 8 6 → 222 + 2211(6) + 21111(5) + 111111 → 13 직접 몇 번 해보니까 이게 피보나치 수열이랑 동일한 문제다. 그래서 동일하게 풀이했다. function solution(n) { const arr = [1, 1, 2]; if(n < 3) return arr[n]; for(let i = 3; i
[230417] 귤 고르기 문제 풀이 내 풀이 function solution(k, tangerine) { const arr = new Array(Math.max(...tangerine)).fill(0); for(let i = 0; i a - b); let answer = 0; while(k > 0) { k -= arr.pop(); answer++; } return answer; } 크기를 인덱스로 두어, 각 크기의 개수를 배열 arr에 담음 arr을 오름차순으로 정렬 arr을 pop한 값을 k만큼 빼고, answer를 더함 3번을 k가 양수일 때까지 계속 반복함 (많은 크기의 수부터 상자에 담아버림) ..
[230416] 가장 가까운 같은 글자 문제 풀이 내 풀이 function solution(s) { return [...s].map((text, idx) => { const char = s.slice(0, idx + 1); if(char.indexOf(text) === char.lastIndexOf(text)) return -1; return idx - s.slice(0, idx).lastIndexOf(text); }) } 반복문을 돌리고, 문자열에서 index만큼 문자열의 앞부분을 자른다. 자른 문자열에서 해당 문자열이 한 번 있으면 -1를 반환. indexOf와 lastIndexOf가 동일하면, 한 번만 있다는 의미 그게 아니라면, index에서 index를 포함하지 않는, 앞까지 자른 문자열에서 마지막에 위치한(lastIndexOf) 인..

반응형