본문 바로가기

⏳ 알고리즘

(103)
프로그래머스 - LV3. 이중우선순위큐 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import heapq def solution(operations): queue = [] def insert(queue, num): heapq.heappush(queue, num) return queue def max_delete(queue): queue.remove(max(queue)) heapq.heapify(queue) return queue def min_delete(queue)..
프로그래머스 - LV3. 정수 삼각형 문제 https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(triangle): for i in range(1, len(triangle)): for j in range(i+1): if j == 0: triangle[i][0] += triangle[i-1][0] elif j == i: triangle[i][j] += triangle[i-1][j-1] else: triangle[i][j] += max(triangle[i-1][..
프로그래머스 - LV3. 야근 지수 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(n, works): answer = 0 total_work = sum(works) if total_work
프로그래머스 - LV2. 2개 이하로 다른 비트 문제 https://school.programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(numbers): answer = [] for num in numbers: num_b = '0'*(8-len(bin(num)[2:]))+bin(num)[2:] n = num while n
프로그래머스 - LV2. 하노이의 탑 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(n): answer = [] def hanoi(원반개수, 시작, 목표, 보조): if 원반개수 == 1: answer.append([시작, 목표]) return hanoi(원반개수-1, 시작, 보조, 목표) answer.append([시작, 목표]) hanoi(원반개수-1, 보조, 목표, 시작) hanoi(n, 1, 3, 2) return answer
프로그래머스 - LV2. 스킬트리 문제 https://school.programmers.co.kr/learn/courses/30/lessons/49993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(skill, skill_trees): answer = 0 for s in skill_trees: skill_list = list(skill) for i in range(len(s)): if s[i] in skill: if s[i] != skill_list.pop(0): break else: answer += 1 return answer
프로그래머스 - LV2. 두 큐 합 같게 만들기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 from collections import deque def solution(queue1, queue2): if (sum(queue1)+sum(queue2))%2 != 0: return -1 deque1 = deque(queue1) deque2 = deque(queue2) sum1, sum2 = sum(deque1), sum(deque2) count = 0 while count sum..
프로그래머스 - LV2. 방문 길이 문제 https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(dirs): visited = set() x, y = 5, 5 for d in dirs: if d == 'U' and y0: visited.add(((x, y-1), (x,y))) y -= 1 if d == 'R' and x0: visited.add(((x-1, y), (x,y))) x -= 1 return len(visited)
프로그래머스 - LV2. 주차 요금 계산 문제 https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 defaultdict, 딕셔너리 정렬, math.ceil이용 from collections import defaultdict import math def solution(fees, records): answer = [] # records_split : records를 차 번호 순대로 정렬 records_split = [] for r in records: records_split.appe..
프로그래머스 - LV4. 입양 시각 구하기(2) 문제 https://programmers.co.kr/learn/courses/30/lessons/59413 코딩테스트 연습 - 입양 시각 구하기(2) ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 programmers.co.kr 코드 1) 변수 사용 X SELECT HOUR(DATETIME), COUNT(DATETIME) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) >= 0 AND HOUR(DATETIME)