일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 딕셔너리
- programmers
- 프로그래머스
- 구현
- 운영체제
- N과M
- 다익스트라
- 스택
- dfs
- 코딩테스트
- 수학
- 재귀
- level3
- 브루트포스
- 가상메모리 관리
- 가상메모리
- 파이썬
- 힙
- BOJ
- dict
- 백준
- level0
- MYSQL
- level2
- BFS
- level1
- 다이나믹 프로그래밍
- python
- 그리디
- DP
- Today
- Total
목록파이썬 (259)
동캄의 코딩도장
https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr def solution(jobs): answer = 0 schedule = [] jobs.sort() length = len(jobs) end = 0 while jobs: if schedule: #대기 열이 존재하는 경우 start, spend = schedule.pop() answer += (spend+end-start) end += spend else:..
https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr # 프로그래머스 베스트앨범 def solution(genres, plays): answer = [] genre_ = set(genres) sum_play = {} lst = {} for genre in genre_: lst[genre] = [] sum_play[genre] = 0 for val in enumerate(zip(genres, plays)): lst..
https://programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr def solution(n, times): answer = 0 start = 1 end = max(times)*n while True: mid = (start+end)//2 cnt = 0 for time in times: cnt += mid//time if cnt == n: end = mid start = mid//2 while True: mid = (start+..
https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net # 백준 1987 import sys input = sys.stdin.readline R, C = map(int, input().split()) dr = [0, 0, 1, -1] dc = [1, -1, 0, 0] field = [] for _ in range(R): field.append(list(map(str, input().rstrip()))) visit = [0]*(26) answer..
https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 맨 처음에는 두가지 큐를 이용해서, 현재 진행하는 큐와 값을 받을 큐로 나누어서 문제를 해결하려고 하였다. ---> 시간초과 발생 # 백준 7576 시간초과 from collections import deque import sys input = sys.stdin.readline global answer answer = 0 dr=[0,0,-1,1] dc=[1,-1,0,0] M, N ..
https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net # 백준 11866 N, K = map(int, input().split()) lst = [0]*(N+1) cnt = 0 k_count = 0 i = 0 answer = [] while N != cnt: if lst[i % N+1] == 0: k_count += 1 if k_count == K: lst[i % N+1] = 1 answer.append(i % N+1) cnt += 1 k_count = 0 i += 1 print('', end='') lst의 값이 1이면(존재하지 않음..