[Python/백준] 10026 적록색약
Coding Test/Python2023. 3. 19. 18:12[Python/백준] 10026 적록색약

https://www.acmicpc.net/problem/10026 10026번: 적록색약적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록)www.acmicpc.netDFS탐색 문제이다. 구역들을 입력받아서 2차원 배열로 만든다.우선 적록색약이 아닌 사람이 보는 구역들을 구하기 위해서 R,B,G를 따로 DFS로 탐색한다.2번을 진행하는 동안 R과 G는 0으로 교체, B는 1로 교체한다. 적록색약인 사람이 보는 구역들을 구하기 위해서 이다.0,1을 구분으로 구역이 몇개로 나누어져 있는지 DFS로 탐색한다.4번에서 탐색한 지역은 2로 교체해서 탐색한 위치라는 걸..

[Python/백준] 7576 토마토
Coding Test/Python2023. 3. 8. 23:27[Python/백준] 7576 토마토

https://www.acmicpc.net/problem/7576 7576번: 토마토첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토www.acmicpc.netBFS 넓이 우선 탐색 문제이다.토마토를 담을 상자역할을 할 2차원 배열을 만든다.익은 토마토가 어디에 있는지 알기 위해 1행을 읽어서 익은 토마토의 좌표를 기록해둔다.2번에서 기록한 토마토의 좌표 모두를 좌우앞뒤로 움직여서 그곳이 0(안익은 토마토)일 경우 0을 1로 바꾼뒤 3번을 진행하면서 기록한 좌표들로 익은 토마토의  좌표를 갱신해준다. 3번이 몇번 진행 되는지도 기록해준다.새로..

[Python/백준] 2170 선 긋기
Coding Test/Python2023. 3. 5. 01:12[Python/백준] 2170 선 긋기

https://www.acmicpc.net/problem/2170 2170번: 선 긋기첫째 줄에 선을 그은 횟수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 다음 N개의 줄에는 선을 그을 때 선택한 두 점의 위치 x, y (-1,000,000,000 ≤ x www.acmicpc.net그리디 문제이다.x좌표를 기준으로 오름차순으로 정렬한다.첫번째 x좌표와 y좌표를 기록한다.2번째  x좌표가 첫번째 y좌표보다 앞에있다면 2번째와 첫번째 y좌표를 비교해서 더 큰 값으로 y좌표를 기록한다.(여기서 x좌표는 정렬되어 있기 때문에 2번째 x좌표가 첫번째 x좌표보다 앞에 있을 수가 없다.)2번째 x좌표가 첫번째 y좌표보다 뒤에 있다면 첫번째 x좌표와 y좌표의 차를 구해서 output에 더해준다.(길이를 더해준..

[Python/백준] 1744 수 묶기
Coding Test/Python2023. 3. 4. 21:06[Python/백준] 1744 수 묶기

https://www.acmicpc.net/problem/1744 1744번: 수 묶기길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에www.acmicpc.net그리디 문제이다. 입력받은 숫자들을 오름차순으로 정렬해준다.양수 숫자들은 큰수부터 2개씩 곱해서 더해준다. 1*1 보다 1+1이 더 큰 수라는 것에 유의한다.양수가 하나남으면 그냥 더해주면 된다.음수 숫자들은 작은수부터 2개씩 곱해서 더해준다.음수가 하나남고 0도 남았을 경우 서로 곱해서 더해준다.0이 안남고 음수가 하나 남았으면 그냥 더해주면 된다.위 사진의 계산식은 문제 해설에 적은 방법들을 예제..

[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에서 선택한 꽃이 피는 날..

728x90
반응형
image