본문 바로가기

분류 전체보기154

[Python] 백준 1700: 멀티탭 스케쥴링 https://www.acmicpc.net/problem/1700 1700번: 멀티탭 스케줄링 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전 www.acmicpc.net 1. 현재 멀티탭에 삽입하고자 하는 플러그가 있으면 continue 한다. 2. 멀티탭 자리가 비어있으면 그대로 꽂는다. 3. 멀티탭의 자리가 꽉 찼을 경우 (이 경우를 찾는 게 너무 어려웠다.) 현재 멀티탭에 있는 정보중 나중에 꽂을 플러그가 멀어지면 멀어질수록 뽑아야 할 우선순위가 높다. n, k = map(int, input().split()) items = list(map(int, inpu.. 2021. 9. 19.
[Python] 백준 1916: 최소비용 구하기 https://www.acmicpc.net/problem/1916 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net 1. 다익스트라 알고리즘을 이용한다. 2. 시작정점에서 모든 정점 방문후, 시작정점에서 각 정점마다 가장 짧은 비용을 출력한다. 3. 두 정점간의 여러가지 경로값이 주어질수도 있다. 그래서 매 경로마다 최솟값을 갱신해줘야한다. 아래는 배열을 이용한 다익스트라 알고리즘인데 정점마다 모든정점을 확인해야하기 때문에 O(V^2) 시간이 드는데 이는 정점이 많고 간선이 적.. 2021. 9. 17.
[Python] 백준 9576: 책 나눠주기 https://www.acmicpc.net/problem/9576 9576번: 책 나눠주기 백준이는 방 청소를 하면서 필요 없는 전공 서적을 사람들에게 나눠주려고 한다. 나눠줄 책을 모아보니 총 N권이었다. 책이 너무 많기 때문에 백준이는 책을 구분하기 위해 각각 1부터 N까지의 www.acmicpc.net 1. scope의 scope[1]을 기준으로 정렬한다. 책의 앞번호부터 나눠주기 위함이다. (만약 뒤에서부터 나누어주면 7 8 8 8 이런식으로 값이 들어오면 ans 는 1이된다. 이것때문에 틀렸다.) 2. find 함수로 책을 나눠줬으면 다음 인덱스의 책으로 이동한다. 3. 책을 나누어줄 범위를 벗어나면 ans값을 올리지 않는다. T = int(input()) def find(x): if x > b.. 2021. 9. 17.
[Python] 백준 2638: 치즈 https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 www.acmicpc.net 1. 공기와 접촉하면 천천히 녹는다. 내부에 있는 공간은 접촉하지 않는 것으로 가정한다. 이 의미에 힌트가있다. 2. 내부에 있는 공간은 접촉하지 않으므로 외부에서부터 BFS로 진행해줘서 2번이상 접촉을하면 다음 반복문에서 제외시켜주면된다. 3. 마지막으로 전체가 0 일시 무한루프 탈출해준다. from collections import deque n, m = map(int, input.. 2021. 9. 16.