본문 바로가기

Algorithm

(129)
깊콘이 넘쳐흘러 (17420번) - 백준 (BOJ) https://www.acmicpc.net/problem/17420 17420번: 깊콘이 넘쳐흘러 정우는 생일을 맞아 친구들에게 기프티콘을 N개 선물받았다. 어떤 기프티콘을 언제 쓸지 다 계획을 정해놨는데, 멍청한 정우는 기프티콘에 기한이 있다는 사실을 까맣게 잊고 있었다. 다행히 www.acmicpc.net 백준 - 깊콘이 넘쳐흘러 (17420번) 난이도 : Gold 1 알고리즘&자료구조 : Greedy (그리디) & Sorting (정렬) 시간복잡도 (Time Complexity) : O(NlogN) ★ 핵심 Idea ★ 특정 시점 X에서 기프티콘을 사용할 때, X보다 뒤에 사용할 기프티콘들의 남은 사용기한이 X에 사용할 기프티콘들의 남은 사용기한보다 더 커야한다. class Gif..
행렬과 연산 (118670번) - 프로그래머스 (Programmers) https://school.programmers.co.kr/learn/courses/30/lessons/118670 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 - 행렬과 연산 (118670번) 난이도 : Lv 4 Time Complexity : O( len(operations) ) 알고리즘&자료구조 : Deque (덱, 데크) 2022 KAKAO TECH INTERNSHIP 기출문제이다. ★ 핵심 아이디어 행렬의 가장자리를 분리시키면, Deque를 활용해서 해결할 수 있다. from collections import de..
가스관 (2931번) - 백준 (BOJ) https://www.acmicpc.net/problem/2931 2931번: 가스관 www.acmicpc.net 백준 - 가스관 (CIJEVI) (2931번) 난이도 : Gold 3 알고리즘&자료구조 : Simulation (구현) ★ 핵심 Idea ★ M에서 출발해서 파이프를 쭉 따라가며 중간에 끊긴 좌표를 찾고, 그 좌표의 상하좌우를 확인하면서 알맞은 모양의 파이프를 찾는다. import sys input = sys.stdin.readline class Pipe(): def __init__(self, R, C): self.R, self.C = R, C dd = [[-1, 0, 1, 0], [0, 1, 0, -1]] mapping = {0: 2, 1: 3, 2: 0, 3: 1} r,..
풍선 (4716번) - 백준 (BOJ) https://www.acmicpc.net/problem/4716 4716번: 풍선 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 팀의 수 N(1 ≤ N ≤ 1,000)과 방 A와 B에 보관되어있는 풍선의 수 A, B가 주어진다. (0 ≤ A, B ≤ 10,000) 다음 N개 www.acmicpc.net 백준 - 풍선 (Balloons) (4716번) 난이도 : Gold 1 알고리즘&자료구조 : Greedy (그리디) & Sorting (정렬) 시간복잡도(Time Complexity) : O( N*logN ) import sys input = sys.stdin.readline class Room(): def __init__(self, balloons)..
연료 채우기 (1826번) - 백준 (BOJ) https://www.acmicpc.net/problem/1826 1826번: 연료 채우기 첫째 줄에 주유소의 개수 N(1 ≤ N ≤ 10,000)가 주어지고 두 번째 줄부터 N+1번째 줄 까지 주유소의 정보가 주어진다. 주유소의 정보는 두개의 정수 a,b로 이루어 져 있는데 a(1 ≤ a ≤ 1,000,000)는 성경 www.acmicpc.net 백준 - 연료 채우기 (Expedition) (1700번) 난이도 : Gold 2 알고리즘&자료구조 : Priority Queue (우선순위 큐) & Greedy (그리디) 시간복잡도(Time Complexity) : O( N*logN ) import sys input = sys.stdin.readline from heapq import he..
멀티탭 스케줄링 (1700번) - 백준 (BOJ) https://www.acmicpc.net/problem/1700 1700번: 멀티탭 스케줄링 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전 www.acmicpc.net 백준 - 멀티탭 스케줄링 (1700번) 난이도 : Gold 1 알고리즘&자료구조 : Greedy (그리디) 시간복잡도(Time Complexity) : O( N*K ) class Extension(): def __init__(self, N, K): if K
통나무 자르기 (1114번) - 백준 (BOJ) https://www.acmicpc.net/problem/1114 1114번: 통나무 자르기 첫째 줄에 두 개의 수를 출력한다. 첫 번째 수는 가장 긴 조각의 길이이고, 두 번째 수는 그 때 처음 자르는 위치를 출력한다. 만약 가능한 것이 여러 가지라면, 처음 자르는 위치가 작은 것을 출 www.acmicpc.net 백준 - 통나무 자르기 (1114번) 난이도 : Gold 1 알고리즘&자료구조 : Parametric Search (파라메트릭 서치) & Sorting (정렬) 시간복잡도(Time Complexity) : O( K * logK ) 파라메트릭 서치를 적절히 활용해서 풀 수 있는 문제이다. class Log(): def __init__(self, L, K, C): acc = s..
컵라면 (1781번) - 백준 (BOJ) https://www.acmicpc.net/problem/1781 1781번: 컵라면 상욱 조교는 동호에게 N개의 문제를 주고서, 각각의 문제를 풀었을 때 컵라면을 몇 개 줄 것인지 제시 하였다. 하지만 동호의 찌를듯한 자신감에 소심한 상욱 조교는 각각의 문제에 대해 데드라 www.acmicpc.net 백준 - 컵라면 (1781번) 난이도 : Gold 2 알고리즘&자료구조 : Priority Queue (우선순위 큐) & Sorting (정렬) 시간복잡도(Time Complexity) : O( N * logN ) 정렬과 우선순위 큐를 적절히 활용해서 풀 수 있는 문제이다. import sys input = sys.stdin.readline from heapq import heappop,..