반응형

프로그래머스 39

프로그래머스) 카펫

https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 나의 풀이) 전체 면적 = brown + yellow yellow = (전체 너비 - 2) * (전체 높이 - 2) 위 방정식을 세운 후 전체 면적에 대한 너비와 높이를 구한다(완전 탐색). 두 번째 방정식에 맞는 너비와 높이를 구한다. function solution(brown, yellow) { const area = brown + yellow; cons..

IT/Algorithm 2021.11.26

프로그래머스) 프린터

https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 나의 풀이) 이번 알고리즘도 풀지 못하였다. 제한 시간을 2시간으로 두고 풀어보았고, 수 차례 쓰고 지우고를 반복했지만 무엇인가 벽이 느껴졌다. 아이디어 힌트를 얻고 풀긴 했지만 2단계에 들어서고부터는 계속 힌트를 얻어 풀고있는데 만족스럽지 못하다. function solution(priorities, location) { let rank = 0; while (pr..

IT/Algorithm 2021.11.24

프로그래머스) 구명보트

https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 나의 풀이) 이번 풀이는 내가 풀지 못하였다. 즉 질문하기 란에 사람들이 질문하고 답변한 것에서 힌트를 많이.. 얻어 풀었다는 뜻이다. 문제에 나와있듯 이 알고리즘은 탐욕법 알고리즘이다. 즉 모든 부분에서의 최적해를 구하는 것이 아닌 그 상황에서의 최적해를 구한다는 뜻이다. 나는 이중 for문, while문, 재귀 함수를 사용하여 테스..

IT/Algorithm 2021.11.23

프로그래머스) 큰 수 만들기

https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 나의 풀이 function solution(number, k) { const numArray = [...number]; const stack = []; while (numArray.length) { if (k > 0 && stack[stack.length - 1] < numArray[0]) { stack.pop(); k -= 1; continue; } stack.push(numArray.shift()); } return stack.slice(0, stack.length - k).join(""); } 하지만 테스트 코드 10번을 계속 실패하..

IT/Algorithm 2021.11.21

프로그래머스) 124 나라의 숫자

https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 나의 풀이 function solution(n) { const answer = []; while (n > 3) { if (!(n % 3)) { n = parseInt(n / 3) - 1; answer.push(4); continue; } answer.push(n % 3); n = parseInt(n / 3); } answer.push(n === 3 ? 4 : n); return answer.reverse().join(""); } 재귀함수를 사용하고 싶었는데 도저히 짤 수가 없었다.. 문제 규칙상 124만 사용할 수 있지만 3진법으로 ..

IT/Algorithm 2021.10.29

프로그래머스) 멀쩡한 사각형

https://programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 나의 풀이 function isCoprime(a, b) { return a % b ? isCoprime(b, a % b) : b; } function solution(w, h) { return isCoprime(w, h) === 1 ? (w * h) - (w + h - 1) : (w * h) - (w + h - isCoprime(w, ..

IT/Algorithm 2021.10.28

프로그래머스) 문자열 압축

https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 나의 풀이 function solution(s) { if (s.length === 1) { return 1; } const answer = []; let string = s.split(""); let zipList = []; let count = 1; for (let i = 1; i { if (JSON.stringify(acc) === JSON.strin..

IT/Algorithm 2021.10.28

프로그래머스) 최대공약수와 최소공배수

https://programmers.co.kr/learn/courses/30/lessons/12940 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 나의 풀이 function solution(n, m) { const nDivisorList = []; const mDivisorList = []; for (let i = 1, j = 1; i b라고 가정하였을 때, a를 b로 나누었을 때 나머지 r이 존재한다면 a와 b의 최대공약수는 b와 r의 최대공약수와 같다는 원리이다. 이에 ..

IT/Algorithm 2021.10.27

프로그래머스) 시저 암호

https://programmers.co.kr/learn/courses/30/lessons/12926 코딩테스트 연습 - 시저 암호 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀 programmers.co.kr 나의 풀이 function solution(s, n) { const upperList = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']; const..

IT/Algorithm 2021.10.27

프로그래머스) 문자열 내 마음대로 정렬하기

https://programmers.co.kr/learn/courses/30/lessons/12915 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱 programmers.co.kr 나의 풀이 function solution(strings, n) { return strings.sort((a, b) => { if (a[n] b[n]) { return 1; } return a < b ? -1 : 1; }); ..

IT/Algorithm 2021.10.25
반응형