[Python/백준] 11000 강의실 배정
Coding Test/Python2023. 3. 3. 21:59[Python/백준] 11000 강의실 배정

https://www.acmicpc.net/problem/11000 11000번: 강의실 배정첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si www.acmicpc.net그리디 문제이다. 우선 수업을 시작하는 시간을 기준으로 오름차순 정렬해준다. 그후 우선순위큐를 만들어 주고 종료시간을 넣어주며 수업 시작시간을 순서대로 비교하면 된다. 마지막으로 출력은 heapq안에 남아있는 것들의 개수를 출력해주면 된다.우선순위큐는 파이썬 내장함수인 heapq를 사용했다.자세한것은 예시를 들어서 설명하겠다.위에보이는 강의 예시를 입력값으로 하겠다.예시의 경우 위에 보이는 사진처럼 3개의 강의실만 사용해서 모든 수업을 할 수 있다.그렇다면 알고리즘 적..

[Python/백준] 2457 공주님의 정원
Coding Test/Python2023. 1. 24. 17:15[Python/백준] 2457 공주님의 정원

https://www.acmicpc.net/problem/2457 2457번: 공주님의 정원첫째 줄에는 꽃들의 총 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 각 꽃이 피는 날짜와 지는 날짜가 주어진다. 하나의 날짜는 월과 일을 나타내는 두 숫자로 표현된다. 예를 들어서,www.acmicpc.net 그리디 문제이다. 문제자체는 간단하다 꽃이 피는 날자를 인덱스로 지는 날자를 저장할 배열을 만든다.처음 1월 1일부터 3월 1일안에 꽃이 피는 날자가 있는 꽃중 지는 날자가 가장 먼 꽃을 선택한다. 이유는 가장 먼 시간까지 살아있는 꽃이 더 많은 선택지를 줘서 원하는 값(목표)에 더 빠르게 접근할 수 있을테니 최소 개수를 출력하기 좋은 조건이 된다.이제 2에서 선택한 꽃이 피는 날..

[Python/백준] 3055 탈출
Coding Test/Python2023. 1. 24. 02:43[Python/백준] 3055 탈출

https://www.acmicpc.net/problem/3055 3055번: 탈출사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제www.acmicpc.netBFS 문제이다. 고려해야할 점이 2가지가 있다. 고슴도치도 이동하고 물도 이동하기때문에 이 둘을 같이 이동시킨다.고슴도치는 물이 차오르는 곳에 갈 수 없기 때문에 물을 먼저 이동시킨다. 이러면 물이 차오를 곳에 물이 들어가 있어서 고슴도치가 그곳으로 갈 수 없는 효과를 낸다.이제 고슴도치가 방문했던 곳을 다시 방문하지 않고, 물이 있는 곳을 방문하지 않기 위해서 표시를 하면서 이동하면 된다.고슴도치가 이동한 곳들..

[Python/백준] 2206 벽 부수고 이동하
Coding Test/Python2023. 1. 23. 07:54[Python/백준] 2206 벽 부수고 이동하

https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로www.acmicpc.netBFS 너비우선 탐색 문제입니다. 이 문제는 고려해야할 것들이 좀 있습니다.벽을 부수고 이동하는 중인지 벽을 부수지 않고 이동하는 중인지 알수 있도록 기록해야 합니다.방문한 지점을 다시 방문하지 않기위해 방문한 지점을 기록해야 합니다.1,2과 연결되는데 벽을 부수지 않고 이동할때 벽을 부수고 이동하는 지점을 다시 방문할 수 있습니다. 이렇게 하지 않을시 나중에 벽을 뚫지 못해서..

[Python/백준] 2133 타일 채우기
Coding Test/Python2023. 1. 22. 19:31[Python/백준] 2133 타일 채우기

https://www.acmicpc.net/problem/2133 2133번: 타일 채우기3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자.www.acmicpc.net다이나믹 프로그래밍 문제입니다. 규칙을 찾아서 점화식을 만들면 됩니다. 문제에서 중요한점은 N이 짝수일 경우에는 2x1,1x2타일로 절대 채울수 없기 때문에 0을 출력해야합니다. 점화식을 세우는 과정을 예시를 들어서 설명하겠습니다.점화식을 구한 이후엔 dp배열을 만들어서 n들의 가짓수를 저장해줍니다. 그리고 저장한 값들을 통해서 원하는 값을 구합니다.본사진은 n이 8일때까지의 가짓수를 그린 사진입니다.n = 2 : 채우는 방식이 3가지가 있습니다.n = 4 : 채우는 방식 2가지가 더해집니다. 그리고 n-2인 가..

[Python/백준] 2225 합분해
Coding Test/Python2023. 1. 22. 10:58[Python/백준] 2225 합분해

https://www.acmicpc.net/problem/2225 2225번: 합분해첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다.www.acmicpc.net다이나믹 프로그래밍 문제이다. 문제의 포인트는 덧셈의 순서가 바뀐 경우 다른경우로 센다는 것과 0부터 N까지의 정수라는걸 기억해야한다. 가령 숫자 2를 2가지 정수를 더해서 만들때 0+2, 1+1, 2+0 이런식으로 3개의 경우가 생기는 것이다.이문제는 이런 결과를 저장해 나가는 방식으로 하면된다. 0부터 N까지의 정수를 1부터 k개를 더해서 나오는 경우의 수를 다 저장하면된다. 그후 배열의 가장 뒤에있는 숫자를 출력해주면 된다. 자세한것은 예시를 들어서 설명하겠다.다음은 문제 예제 입력 2로나와있는 N = 6 K = 4일경우의..

728x90
반응형
image