본문 바로가기

코딩일기

(127)
알고리즘 코드카타 111 - 무인도 여행 https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 설명 메리는 여름을 맞아 무인도로 여행을 가기 위해 지도를 보고 있습니다. 지도에는 바다와 무인도들에 대한 정보가 표시돼 있습니다. 지도는 1 x 1크기의 사각형들로 이루어진 직사각형 격자 형태이며, 격자의 각 칸에는 'X' 또는 1에서 9 사이의 자연수가 적혀있습니다. 지도의 'X'는 바다를 나타내며, 숫자는 무인도를 나타냅니다. 이때, 상, 하, 좌, 우로 연결되는 땅들은 하나의 무인도를 이..
SQL 코드카타 110 - Product Price at a Given Date https://leetcode.com/problems/product-price-at-a-given-date/description/ Column NameTypeproduct_idintnew_priceintchange_datedate Products 테이블:product_id : 제품의 idnew_price : 변경된 가격change_date : 변경된 날짜2019-08-16의 모든 제품의 가격을 찾는 솔루션을 작성하세요. 모든 제품의 초기 가격은 10이라고 가정하세요. select product_id, max(change_date) change_date from Productswhere change_date  가장 먼저 2019-08-16의 이전의 값들을 제거해준다. 그리고 값이 여러개라면 가장..
알고리즘 코드카타 110 - 두 큐 합 같게 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/118667?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 설명 길이가 같은 두 개의 큐가 주어집니다. 하나의 큐를 골라 원소를 추출(pop)하고, 추출된 원소를 다른 큐에 집어넣는(insert) 작업을 통해 각 큐의 원소 합이 같도록 만들려고 합니다. 이때 필요한 작업의 최소 횟수를 구하고자 합니다. 한 번의 pop과 한 번의 insert를 합쳐서 작업을 1회 수행한 것으로 간주합니다. 큐는 먼저 집어넣은 원소가 먼저 나..
알고리즘 코트카타 - 26 ~ 30 (자바스크립트) https://school.programmers.co.kr/learn/courses/30/lessons/76501?language=javascript 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr1.문제 설명 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. 제한사항 absolutes의 길이는 1 이상 1,000 이하입니다. absolutes의 모든 수는..
SQL 코드카타 109 - Consecutive Numbers https://leetcode.com/problems/consecutive-numbers/ Column NameTypeidintnumvarchar Logs 테이블: id: 테이블의 기본키num: 숫자적어도 세 번 연속으로 나타나는 모든 숫자를 찾으세요. 쿼리를 자체결합해서 풀어낼 수 있었다.SELECT distinct l1.num ConsecutiveNumsFROM Logs l1JOIN Logs l2 ON l1.id = l2.id - 1JOIN Logs l3 ON l1.id = l3.id - 2where l1.num = l2.num and l1.num = l3.num 인터넷검색을 하면서 발견한 방법인데 결합하려는 열에 연산을 적용해서 원하는 만큼 당겨서 join을 할 수 있었다. 위의 방법을 통해서 간단..
알고리즘 코드카타 109 - 연속된 부분 수열의 합 https://school.programmers.co.kr/learn/courses/30/lessons/178870?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 설명 비내림차순으로 정렬된 수열이 주어질 때, 다음 조건을 만족하는 부분 수열을 찾으려고 합니다. 기존 수열에서 임의의 두 인덱스의 원소와 그 사이의 원소를 모두 포함하는 부분 수열이어야 합니다. 부분 수열의 합은 k입니다. 합이 k인 부분 수열이 여러 개인 경우 길이가 짧은 수열을 찾습니다. 길이가 짧은 수열이 여러 개인 경우 앞쪽(시작 인덱스가 작은)에 나오는..
알고리즘 코트카타 - 21 ~ 25 (자바스크립트) https://school.programmers.co.kr/learn/courses/30/lessons/12947?language=javascript 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr1. 문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.function solution(x) { let answer = true..
SQL 코드카타 108 - Triangle Judgement https://leetcode.com/problems/triangle-judgement/description/ Column NameTypexintyintzint Triangle 테이블: 각 행은 세 선분의 길이입니다.세 선분이 삼각형을 이룰 수 있다면 Yes, 아니라면 No를 반환하세요. 세 선분이 삼각형을 이루기 위해서는 가장 큰 선분의 길이가 나머지 두 선분의 길이보다 작아야한다. 따라서 x, y, z중 가장 긴 열의 길이가 나머지 두 열의 합보다 작아야한다. 열 간의 숫자 비교는 max()를 사용할 수 없었기 때문에 검색을 통해서 Greatest()를 찾아서 사용했다. 그리고 가장 큰 숫자를 찾는 것은 쉬워도 나머지 두 숫자를 걸러내는 것은 또 다른 문제였기 때문에 x, y, z를 전부 더하고 가장..