본문 바로가기

Algorithm

(129)
합승 택시 요금 (72413번) - 프로그래머스 (Programmers) https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 - 합동 택시 요금 (72413번) 난이도 : Lv 3 알고리즘 : Dijkstra (다익스트라) 풀이 소요 시간 : 30 mins import sys from heapq import heappop, heappush def solution(n, s, a, b, fares): def dijkstra(x, d): pq = [(0, x)] while pq: nd, nn = heappop(p..
k진수에서 소수 개수 구하기 (92335번) - 프로그래머스 (Programmers) https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 - k진수에서 소수 개수 구하기 (92335번) 난이도 : Lv 2 알고리즘 : Mathematics (수학) 풀이 소요 시간 : 35 mins def is_prime(x): if x == 2: return True if not x&1 or x == 1: return False for i in range(3, int(pow(x, 0.5))+1, 2): if not x%i: return..
치킨 배달 (15686번) - 백준 (BOJ) https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 백준 - 치킨 배달 (15686번) 난이도 : Gold 5 알고리즘&자료구조 : Exhaustive Search (완전 탐색) import sys input = sys.stdin.readline from itertools import combinations as comb if __name__ == '__main__': N, M = map(int, input().split())..
좋은 친구 (3078번) - 백준 (BOJ) https://www.acmicpc.net/problem/3078 3078번: 좋은 친구 첫째 줄에 N과 K가 주어진다. (3 ≤ N ≤ 300,000, 1 ≤ K ≤ N) 다음 N개 줄에는 상근이네 반 학생의 이름이 성적순으로 주어진다. 이름은 알파벳 대문자로 이루어져 있고, 2글자 ~ 20글자이다. www.acmicpc.net 백준 - 좋은 친구 (3078번) (MALCOLM) 난이도 : Gold 4 알고리즘&자료구조 : Queue (큐) 풀이 소요 시간 : 15 mins Time Complexity : O( N ) import sys input = sys.stdin.readline from collections import deque if __name__ == '__main__': N, K = ma..
광물 캐기 (172927번) - 프로그래머스 (Programmers) https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 - 광물 캐기 (172927번) 난이도 : Lv 2 알고리즘 : Dynamic Programming (동적계획법) & BFS (너비 우선 탐색) def solution(picks, minerals): cost = [[1, 1, 1], [5, 1, 1], [25, 5, 1]] n = min(sum(picks), ((len(minerals)-1)//5)+1) mapping = {"dia..
탑 (2493번) - 백준 (BOJ) https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 백준 - 탑 (2493번) 난이도 : Gold 5 알고리즘 : Stack (스택) Time Complexity : O( N ) if __name__ == '__main__': N = int(input()) stack = [(0, 100_000_001)] rs = [0] * N for i, h in enumerate(map(int, input().split())): while stack[-1][1..
추석 트래픽 (17676번) - 프로그래머스 (Programmers) https://school.programmers.co.kr/learn/courses/30/lessons/17676 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 - 추석 트래픽 (17676번) 난이도 : Lv 3 알고리즘 : Priority Queue (우선순위 큐), Sorting (정렬) Time Complexity : O( N * logN ) from heapq import heappop, heappush def solution(lines): se = [] for line in lines: _, end, t = line.split() h..
파티 (1238번) - 백준 (BOJ) https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 백준 - 파티 (Silver Cow Party) (1238번) 난이도 : Gold 3 알고리즘 : Dijkstra (다익스트라) Time Complexity : O( E * logV ) import sys input = sys.stdin.readline from heapq import heappop, heappush def dijkstra(b, d): pq = [(0..