본문 바로가기

프로그래머스

(29)
[기타] 프로그래머스 L1 '약수의 합' (Python) https://programmers.co.kr/learn/courses/30/lessons/12928 코딩테스트 연습 - 약수의 합 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수 programmers.co.kr 1. n이 0 또는 1일 때 약수는 0과 1뿐이다. 2. 2이상 약수는 1을 반드시 포함하므로, 1부터 반복문을 돌린다. 3. n//i이 i보다 작을 때 반복문을 멈춘다. (ex. 12//4 < 4) 4. n//i이 i와 같고, n/i==0일 때 i 값을 더하고 반복문을 멈춘다. (ex. 4/2==2) 5. ..
[정렬] 프로그래머스 L1 '정수 내림차순으로 배치하기' (Python) https://programmers.co.kr/learn/courses/30/lessons/12933 코딩테스트 연습 - 정수 내림차순으로 배치하기 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이 programmers.co.kr 1. 정수를 리스트로 바꿔 정렬하고 문자열로 바꾸고 다시 정수로 바꾼다. def solution(n): return int("".join(sorted(str(int(n)), reverse=True))) 1000000000 이상 자연수는 int로 바꿔줘야 함 복습 알고리즘
[기타] 프로그래머스 L1 '최소공약수와 최소공배수' (Python) https://programmers.co.kr/learn/courses/30/lessons/12940 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 1. 공식을 이용하여 최대공약수를 구한다. 2. 최대공약수를 이용하여 최대공배수를 구한다. def gcd(a,b): while a!=0: t = b%a (b,a) = (a,t) return b def solution(n, m): answer = [] if m
[연결리스트/트리구조] 프로그래머스 L2 '더 맵게' (Python) https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 계산해야 할 값의 최솟값의 개수가 최대 1,000,000개 이므로 heapq 사용 주어진 문제대로 알고리즘 구성함 import heapq def solution(scoville, K): answer = 0 mix = 0 heapq.heapify(scoville) while True: if len(scoville)= K: break else: retu..
[연결리스트/트리구조] 프로그래머스 L3 '이중우선순위' (Python) https://programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 최대 1,000,000개의 최솟값, 최댓값을 넣고 빼야 하므로 heapq 사용 문제에서 주어진 조건대로 알고리즘 구성 import heapq def solution(operations): answer = [] for i in operations: if i[0]=="I": heapq.heappush(answer,int(i[2:])) else: if answer!=[]: if i[2:]=="-1": heapq.heappop(answer) else: answer.pop() if answer==[]: return [0,0] else: return..
[큐] 프로그래머스 L2 '프린터' (Python) https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr priorities값과 해당 값의 배열 위치를 q에 저장 문제에서 제시한 방법대로 알고리즘을 구현 #1차 시도. 2,5,18 실패. def solution(priorities, location): q = [] count = 0 for idx, i in enumerate(priorities): q.append((idx,i)) while q: tmp = q.pop(0)..
[동적계획법] 프로그래머스 L3 '정수 삼각형' (Python) https://programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 삼각형의 꼭대기에서 바닥까지의 합을 구하는 것이므로, 아래 칸으로 이동할 때 윗 칸의 숫자를 더해준다. 삼각형의 왼쪽 변의 숫자는 항상 왼쪽 숫자를 더하고, 오른쪽 변의 숫자는 항상 오른쪽 숫자를 더한..
[이분탐색] 프로그래머스 L4 '가사 검색' (Python) https://programmers.co.kr/learn/courses/30/lessons/60060 코딩테스트 연습 - 가사 검색 programmers.co.kr 물음표(?)를 와일드카드로 표현하고 길이가 같아야 한다고 해서 처음엔 정규표현식을 사용해서 풀었다. 한 달 뒤에는 조건문을 활용하여 문제를 풀었다. #211017 -> 효율성 테스트 1,2,3,4 실패 #정규표현식 활용 import re def solution(words, queries): answer = [0] * len(queries) words = sorted(words) p = [0] * len(queries) for i in range(len(queries)): queries[i] = queries[i].replace("?",".")..

LIST