[Programmers] Level 3. 헤비 유저가 소유한 장소 (MySQL)
·
코딩테스트/MySQL
🔗 Problem Link 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❔Thinking HOST_ID가 두 번 이상 등장한 유저의 정보를 출력한다. 💻Solution 1. IN을 활용한 풀이 SELECT ID, NAME, HOST_ID FROM PLACES WHERE HOST_ID in (SELECT HOST_ID FROM PLACES GROUP BY HOST_ID HAVING COUNT(HOST_ID)>=2) ORDER BY ID 2. EXISTS를 활용한 풀이 SELECT * FROM PLACES P1 WHERE EXISTS ( SELECT * F..
[Programmers] Level 3. 최고의 집합 (Python)
·
코딩테스트/Python
🔗 Problem Link 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❔Thinking 자연수 n개로 이루어진 중복집합 중에, 원소의 합이 S되고 그 곱이 최대인 집합('최고의 집합')을 반환한다. '최고의 집합'이 존재하지 않을 경우, [-1]을 반환한다. 💻Solution import math def solution(n, s): if n > s: return [-1] answer = [] while n >= 1: num = math.ceil(s/n) answer.append(num) n -= 1 s -= num return sorted(answer..
[Programmers] Level 3. 정수 삼각형 (Python)
·
코딩테스트/Python
🔗 Problem Link 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❔Thinking 삼각형 상단에서 바닥까지 차례대로 내려오면서, 각 숫자를 더해나간다. 대각선 왼쪽과 오른쪽으로만 내려올 수 있다. 가장 큰 수를 만들 수 있는 경로로 내려왔을 때, 그 합을 반환한다. 💻Solution 1. 위에서 아래로 내려오면서 더해나가는 풀이 def solution(triangle): if len(triangle) == 1: return (triangle[0]) while len(triangle) > 1: sum_result = [] max_result = [..
[Programmers] Level 2. 큰 수 만들기 (Python)
·
코딩테스트/Python
🔗 Problem Link 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❔Thinking 주어진 숫자에서 k개의 수만을 제거하고 이어 남은 숫자를 이어붙인다. 이어 붙인 숫자들 중 가장 큰 숫자를 반환한다. 숫자는 순서를 그대로 유지한 채로 제거하거나 이어붙인다. 💻Solution 1. 주어진 수를 최대로 만드는 숫자의 위치를 찾아가는 풀이 def solution(number, k): answer = '' while k >= 0: max_num = 0 if k == 0 or len(number) == 1: answer += number break for..
[Programmers] Level 2. 전화번호 목록 (Python)
·
코딩테스트/Python
🔗 Problem Link 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❔Thinking 한 번호가, 다른 번호의 시작과 동일한 경우가 있다면 False, 하나도 없다면 True를 반환한다. 💻Solution 1. 모든 접두사를 확인하는 풀이 def solution(phone_book): phone_dict = {number : number for number in phone_book} for phone_num in phone_book: for i in range(1,len(phone_num)): if phone_num[:i] in phone_dict ..
[Programmers] Level 2. 삼각 달팽이 (Python)
·
코딩테스트/Python
🔗 Problem Link 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❔Thinking 주어진 삼각형을 반시계 방향으로 채워나가는 방법은 다음과 같은 과정의 반복이다. 층을 내려가면서, 숫자를 하나씩 늘려 채워나간다. 같은 층의 오른쪽으로 끝까지 가면서, 숫자를 하나씩 늘려 채워나간다. 층을 올라가면서, 숫자를 하나씩 늘려 채워나간다. 위와 같은 방법으로 채워진 삼각형을 각 층의 왼쪽부터 차례대로 리스트에 담아 반환한다. 💻Solution def solution(n): answer = [] triangle = [[0 for _ in range(i)] ..