[백준 알고리즘] 11047번: 동전 0 (JAVA) https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 소스코드 Algorithm/백준 2023.07.30
[백준 알고리즘] 12904번: A와 B (Python) https://www.acmicpc.net/problem/12904 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net 소스코드 풀이 ★ s에서 t를 만드는 것이 아니라 역발상으로 t에서 s를 만들 수 있는가를 확인하였습니다. ★ t에서 s를 만들 수 있는지를 확인해야 하기 때문에 t의 끝 문자열이 'A' or 'B'일 때를 나눠서 조건을 줘야 합니다. ★ 조건을 부여할 때에 t가 s와 같은지를 계속 확인해줘야 합니다. 이 때 같다면 반복문을 빠져나오면서 1를 출력합니다. ★ .. Algorithm/백준 2023.07.10
[백준 알고리즘] 2644번: 촌수계산 (DFS, Python) https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net 소스코드 Algorithm/백준 2023.07.10
[백준 알고리즘] 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
[백준 알고리즘] 4889번: 안정적인 문자열 (Python) https://www.acmicpc.net/problem/4889 4889번: 안정적인 문자열 입력은 여러 개의 데이터 세트로 이루어져 있다. 각 데이터 세트는 한 줄로 이루어져 있다. 줄에는 여는 괄호와 닫는 괄호만으로 이루어진 문자열이 주어진다. 문자열의 길이가 2000을 넘는 경우 www.acmicpc.net 소스코드 Algorithm/백준 2023.07.03
[백준 알고리즘] 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