본문 바로가기

반응형

알고리즘

(37)
프로그래머스 level2 캐시 - 2018 KAKAO BLIND RECRUITMENT 오늘은 프로그래머스 level2 문제인 캐시를 풀어보겠습니다. 문제는 다음과 같습니다. https://programmers.co.kr/learn/courses/30/lessons/17680 v.toLowerCase()); for(let i = 0; i cacheSize) { cache.shift(); } answer += 5; } // 캐시 히트일 경우 else if(cache.includes(newCities[i])) { cache.splice(cache.indexOf..
프로그래머스 level1 두 정수 사이의 합 오늘은 프로그래머스 level1 두 정수 사이의 합 문제를 풀어보겠습니다. 문제는 다음과 같습니다. https://programmers.co.kr/learn/courses/30/lessons/12912 코딩테스트 연습 - 두 정수 사이의 합 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우 programmers.co.kr * 풀이 방법 - a와 b의 대소비교를 하고, 큰 값을 b, 작은 값을 a로 설정한 후에 a부터 b까지 값을 더해주면 됩니다. * 소스 코드 function solution(a, b) { let..
프로그래머스 level2 - 프린터(javascript) 오늘은 프로그래머스 level2 문제인 프린터를 풀어보겠습니다. 문제는 다음과 같습니다. https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr * 풀이 방법 - 이 문제는 우선순위 큐를 이용하면 됩니다. - 우선순위 큐는 배열이나 객체 배열에 우선순위를 따져서 우선순위가 높은 것을 우선적으로 꺼내는 방식으로 진행됩니다. - 먼저 각 경우마다 가장 우선순위가 높은 값을 추출한 후에 - some 메서드를 이용해서 현재 값..
두 개 뽑아서 더하기 (프로그래머스 level1 월간 챌린지 시즌1) 오늘은 프로그래머스에서 두 개 뽑아서 더하기 문제를 풀어보겠습니다. 문제는 다음과 같습니다. https://programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr * 풀이 방법 - 이중 포문을 돌려서 값이 다른 것만 더해줍니다. - 더해준 값을 정렬해주면 끝! * 소스 코드 function solution(numbers) { const set = new Set(); for(let i..
프로그래머스 체육복(Greedy) - level1 오늘은 체육복 문제를 풀어보겠습니다. 문제는 다음과 같습니다. https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr * 풀이 방법 - 전체 사람이 체육복을 가지고 있다고 초기화를 해줍니다. - 잃어버린 사람의 체육복은 0 빌려줄 수 있는 체육복은 2로 세팅합니다 - 그리고 잃어버린 사람이면서 옆에 빌려줄 수 있는지를 체크하면 됩니다. * 코드 function solution(n, lost, reserve) { con..
프로그래머스 타겟 넘버 - level2(dfs) 오늘은 프로그래머스 타겟 넘버 문제를 풀어보겠습니다. 문제는 다음과 같습니다. https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr * 풀이 방법 - 전형적인 완전탐색문제입니다. dfs를 이용해서 문제를 간단하게 풀 수 있습니다. - 1과 -1로 만들 수 있는 모든 경우의 수를 찾고 개수를 누적 후 반환해주면 됩니다. * 코드 function solution(n..
프로그래머스 키패드 누르기 - 카카오 인턴십 오늘은 카카오 인턴십 문제인 키패드 누르기를 풀어보겠습니다. 문제는 다음과 같습니다. https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr * 풀이 방법 - 3, 6, 9는 오른손, 1, 4, 7은 왼손이므로 상관없는데 가운데 키패드에 대한 조건을 추가해야합니다. - 만약 가운데 키패드를 누를 경우는 거리..
프로그래머스 - 문자열 내 마음대로 정렬하기 오늘은 프로그래머스 문자열 내 마음대로 정렬하기 문제를 풀어보겠습니다. https://programmers.co.kr/learn/courses/30/lessons/12915 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱 programmers.co.kr * 문제 요약 문자열이 주어졌을 때 n 인덱스에 해당되는 문자를 먼저 비교한 후 해당 문자가 작은 순서대로 오름차순을 합니다. 만약 같으면 문자열 오름차순 * 풀이 방법 1. 단순 sort 방식 function solutio..