반응형

분류 전체보기 366

[백준 알고리즘] 2583번: 영역 구하기 (DFS, Python)

https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 소스코드 풀이 ★ 입력받은 대로 직사각형을 그려보면 예시와는 다르게 위 아래가 반대로 나옵니다 ! 하지만 그 상대로 풀어도 무방합니다. ★ 상하좌우를 탐색하면서 직사각형으로 덮인 영역이 아닌 곳을 찾아줍니다. 출력으로 영역의 넓이 또한 필요하기 때문에 찾을 때마다 넓이를 1씩 증가시킵니다. ★ 인접한 영역을 모두 찾은 경우에는 영역의 넓이를 리스트에 추가한 뒤, 다시 1로 초기..

Algorithm/백준 2023.07.05

[백준 알고리즘] 18238번: ZOAC 2 (Python)

https://www.acmicpc.net/problem/18238 18238번: ZOAC 2 2019년 12월, 두 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다. 작년 ZOAC의 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로운 규칙을 고안해 www.acmicpc.net 소스코드 풀이 ★ 기준점으로부터 해당 알파벳까지 어느 방향으로 이동하는 게 더 짧은지 비교하기 위해선 ord() 함수를 사용하여 문자열을 아스키 코드로 바꾼 후 연산을 진행해야 합니다. ★ 기준점으로부터 왼쪽으로 도는 변수, 오른쪽으로 도는 변수를 선언합니다. 그 중 음수 값이 나오는 변수에 26을 추가해줍니다. 26을 추가하는 이유는 알파벳 전체를 한바퀴 돌기 위해서는 26번 이..

Algorithm/백준 2023.07.05

[백준 알고리즘] 4963번: 섬의 개수 (DFS, Python)

https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 소스코드 풀이 ★ DFS로 해결한 문제입니다. ★ 포인트는 땅과 인접한 땅을 찾아나가는 과정을 상하좌우만 탐색하는 것이 아니라 대각선까지 탐색해줘야 합니다 ! ★ 탐색하면서 땅을 발견하면 체크해주고 DFS를 호출하여 나머지 방향을 을 탐색해주면 됩니다.

Algorithm/백준 2023.07.05

[백준 알고리즘] 27961번: 고양이는 많을수록 좋다 (Python)

https://www.acmicpc.net/problem/27961 27961번: 고양이는 많을수록 좋다 올바른 행동 순서가 될 수 있는 하나의 예시는 아래와 같으며, $4$번보다 더 작은 행동 횟수로 $6$마리의 고양이를 마도카의 집에 들이는 것은 불가능하다. 초기 상태($0$마리) $\rightarrow$ 생성 www.acmicpc.net 소스코드 풀이 ★ 시작할 때 고양이 0마리부터 시작하기 때문에 고양이를 1마리로 증가시킬 때만 생성마법을 사용하고, 그 이후에는 복제 마법을 사용하는 것이 효율이 좋습니다 ! ★ 고양이의 수가 n과 같아질 때까지 반복문을 수행하는데, 만약 n - t가 현재 고양이 수보다 크면 자기 자신만 복제하고, 반대의 경우에는 n-t만큼 복제해야 합니다. ex) n = 7 첫 ..

Algorithm/백준 2023.07.04

[백준 알고리즘] 1012번: 유기농 배추(DFS, Python)

https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 소스코드 풀이 ★ DFS, 재귀를 사용하여 문제를 풀었습니다. sys.setrecursionlimit()을 통해 재귀의 제한을 높여줍니다 ! 해당 코드가 없 으면 런타임에러가 발생합니다 ! ★ 해당 좌표의 상하좌우를 탐색하면서 인접한 지역을 체크해줍니다. 체크를 해주면서 인접한 지역이 끝났을 경우 cnt를 1증가시켜 지렁이가 필요한 갯수를 카운트 해줍니다 :)

Algorithm/백준 2023.07.03

[백준 알고리즘] 1817번: 짐 챙기는 숌 (Python)

https://www.acmicpc.net/problem/1817 1817번: 짐 챙기는 숌 첫째 줄에 책의 개수 N과 박스에 넣을 수 있는 최대 무게 M이 주어진다. N은 0보다 크거나 같고 50보다 작거나 같은 정수이고, M은 1,000보다 작거나 같은 자연수이다. N이 0보다 큰 경우 둘째 줄에 책 www.acmicpc.net 소스코드 풀이 ★ 상자에 넣을 수 있는 무게를 넘지 않는 선에서 책들을 차곡차곡 stack에 넣어줍니다. ★ 만약 해당 책을 상자에 넣으려고 했는데, stack안에 들어있는 책들의 무게 합과 해당 책의 무게 합이 m을 넘어가면, stack안에 있는 요소들은 해당 상자에 넣어서 보내고, 넣으려고 했던 책은 새로운 상자에 넣어줍니다 !

Algorithm/백준 2023.06.29

[백준 알고리즘] 20365번: 블로그2 (Python)

https://www.acmicpc.net/problem/20365 20365번: 블로그2 neighbor 블로그를 운영하는 일우는 매일 아침 풀고 싶은 문제를 미리 정해놓고 글을 올린다. 그리고 매일 밤 각각의 문제에 대하여, 해결한 경우 파란색, 해결하지 못한 경우 빨간색으로 칠한 www.acmicpc.net 소스코드 풀이 ★ 색깔이 연속되지 않았을 때, 다른 색을 칠해줘야 하기 때문에 딕셔너리에 해당 색깔의 횟수를 1 증가시켜줍니다. ★ 반복문을 돌며 해당 색과 이전 색이 같은지 다른지 확인해줍니다. ★ 위 과정이 모두 끝났을 때 딕셔너리 안에는 해당 색으로 칠해야 하는 횟수가 저장되어 있습니다. 이 때 그 값들 중 최소값에 + 1을 한 값이 답이 되는데, 먼저 최솟값을 찾는 이유는 작업 횟수의 최..

Algorithm/백준 2023.06.29

[백준 알고리즘] 16206번: 롤케이크 (Python)

https://www.acmicpc.net/problem/16206 16206번: 롤케이크 오늘은 재현이의 생일이다. 재현이는 친구 N명에게 롤케이크를 1개씩 선물로 받았다. 롤케이크의 길이는 A1, A2, ..., AN이다. 재현이는 길이가 10인 롤케이크만 먹는다. 따라서, 롤케이크를 잘라서 www.acmicpc.net 소스코드 풀이 ★ 입력받은 롤케이크 길이를 오름차순으로 정렬한 뒤, 10으로 나눈 나머지를 기준으로 또 정렬해줘야 합니다. 그 이유는 롤케이크가 10의 배수인지 아닌지에 따라 자르는 횟수가 다르기 때문입니다. ex) a = [10, 20, 24] 10의 자르는 횟수 = 0 20의 자르는 횟수 = 1 24의 자르는 횟수 = 2 따라서 최대 횟수인 m을 가지고 롤케이크를 최대로 구하기 위..

Algorithm/백준 2023.06.29
반응형