일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 운영체제
- 백준
- dfs
- 브루트포스
- 스택
- 프로그래머스
- level2
- DP
- N과M
- 파이썬
- level1
- 힙
- BOJ
- MYSQL
- 다익스트라
- 가상메모리
- level3
- BFS
- level0
- 수학
- 에라스토테네스의 체
- 구현
- 코딩테스트
- 재귀
- 가상메모리 관리
- python
- programmers
- 다이나믹 프로그래밍
- 딕셔너리
- 그리디
- Today
- Total
목록코딩테스트 (45)
동캄의 코딩도장
# 프로그래머스 하노이의 탑 def hanoi(start, mid, end, pillar): if start: if start[1:]: return hanoi(start[1:], mid, end, [pillar[0], pillar[2], pillar[1]])+[[pillar[0], pillar[2]]]+hanoi(start[1:], mid, end, [pillar[1], pillar[0], pillar[2]]) else: return [[pillar[0], pillar[2]]] def solution(n): answer = [] start = [i for i in range(n, 0, -1)] mid = [] end = [] answer = hanoi(start, mid, end, [1, 2, 3]) r..
https://programmers.co.kr/learn/courses/30/lessons/12936 코딩테스트 연습 - 줄 서는 방법 n명의 사람이 일렬로 줄을 서고 있습니다. n명의 사람들에게는 각각 1번부터 n번까지 번호가 매겨져 있습니다. n명이 사람을 줄을 서는 방법은 여러가지 방법이 있습니다. 예를 들어서 3명의 사람 programmers.co.kr # 프로그래머스 줄 서는 방법 import math def solution(n, k): answer = [] k -= 1 lst = [i for i in range(1, n+1)] while n > 1: p = math.perm(n-1) answer.append(lst.pop(int(k//p))) k = k % p n -= 1 for val in ..
https://programmers.co.kr/learn/courses/30/lessons/12938 코딩테스트 연습 - 최고의 집합 자연수 n 개로 이루어진 중복 집합(multi set, 편의상 이후에는 "집합"으로 통칭) 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고 합니다. 각 원소의 합이 S가 되는 수의 집합 위 조건을 만 programmers.co.kr # 프로그래머스 최고의 집합 def solution(n, s): answer = [] if n > s: answer.append(-1) else: stan = s//n left = s % n for i in range(n-left): answer.append(stan) for i in range(left): answer.append(1+..
https://programmers.co.kr/learn/courses/30/lessons/12914 코딩테스트 연습 - 멀리 뛰기 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2 programmers.co.kr # 프로그래머스 멀리 뛰기 def solution(n): answer = 0 dp = [0]*(n+1) dp[0] = 1 dp[1] = 1 for i in range(2, n+1): dp[i] = (dp[i-1]+dp[i-2]) % 1234567 answer = dp[n] return answer 간단한 ..
https://programmers.co.kr/learn/courses/30/lessons/12927?language=python3 코딩테스트 연습 - 야근 지수 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도 programmers.co.kr # 프로그래머스 야근 지수 import heapq def solution(n, works): answer = 0 q = [] s = sum(works) for work in works: heapq.heappush(q, -work) if n >= s: answer = 0 else: for i in range(n): wo..

https://programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr # 프로그래머스 순위 from collections import deque def solution(n, results): answer = 0 win = [[] for _ in range(n+1)] loss = [[] for _ in range(n+1)] win_check = [0]*(n+1) loss_check = [0]*(n+1) visited = [0]*(n+1) for result in results: a, b = result win[a].append(b) los..