BOJ 17

[백준] 23239 당근 밭 (C++)

23239번: 당근 밭 입력은 표준입력을 사용한다. 첫 번째 줄에 마구간의 크기와 줄의 길이를 나타내는 3 개의 양의 정수 $w$, $h$, $L$ ($1 \le w, h, L \le 100,000$)가 주어진다. www.acmicpc.net ICPC Seoul Regional 2021 예선 B번 문제이다. 현재 solved.ac 기준 난이도는 플래티넘 V이며 개인적으로 쉽지 않았던 문제이다. 마구간의 가로(w), 세로(h)의 길이가 주어지고, 말을 묶은 줄의 길이(L)이 주어질 때, 말이 먹을 수 있는 당근의 개수를 구하는 문제이다. 줄은 마구간의 왼쪽 아래 모서리(0,0)에 묶여 있다. 당근은 마구간을 제외한 (정수, 정수) 점들에 위치해 있다. 마구간의 테두리에는 당근이 없음을 주의해야한다. 풀이 ..

PS/백준 2021.10.25

[백준] 23247 Ten (C++)

23247번: Ten A real estate company IC is managing a rectangular section of land. The section is divided into $mn$ segments in $m \times n$ matrix shape, where the number of rows and that of columns are $m$ and $n$, respectively. Each segment has its own price as a posi www.acmicpc.net 지난 토요일에 참가한 ICPC Seoul Regional 2021 예선 J번 문제이다. 대회 중에 맞췄었던 문제이다. 대회 때 내가 풀어서 기분 좋아서 풀이를 올려본다! 문제를 간단히 요약하면... 위 ..

PS/백준 2021.10.13

[백준] 2206 벽 부수고 이동하기 (C++)

2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 이 문제는 지난 여름 신촌 연합 알고리즘 캠프 DFS,BFS 수업에서 다룬 문제이다. 강사님께서 문제를 푸는 아이디어만 던져주시고 넘어간 문제이다. 수업이 끝나고 문제를 풀어보았을 때에는 구현이 쉽지 않아서 풀지 못했다. 최근 캠프 때 풀지 못했던 문제들을 풀고 있는데, 이 문제도 드디어 해결하였다!! 풀이 입력을 받고 bfs를 통해서 1,1에서부터의 최단거리를 구하는 방식으로 문제를 해결하였다. 이 문제의 특이한 점은 벽을 1번 부신다..

PS/백준 2021.09.10

[백준] 15650 N과 M(2) (C++)

15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net solved.ac의 CLASS 4에 있는 문제이다. 문제를 풀고 나서, 사람들의 코드를 보았는데 꽤 깔끔하게 잘 푼 것 같아서 기록해본다.(설명은 다른 분들보다 훨 못하는 것 같다...) 예전에 재귀를 처음 배울 때 건드렸 보았던 문제인데, 그 땐 풀다가 포기했었다. 오늘 보니까 꽤 잘 풀렸다. 실력이 는 것 같다 ㅎㅎ (아님 말고) 풀이 재귀함수를 이용하여 문제를 해결하였다. 재귀함수의 input값은 idx와 cnt이다. idx는 살펴보기 시작할 인덱스를 의미..

PS/백준 2021.09.10

[백준] 14502 연구소 (C++)

14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net solved.ac 클래스 4에 있는 문제이다. 문제를 읽으면서 새로 세울 수 있는 벽은 3개이고, 꼭 3개를 세워야 한다는 것을 보고 브루트포스를 통해 모든 경우를 봐야겠다고 생각했다. 벽을 3개만 세우는 경우의 수가 크지 않기 때문이다. 그 이후에는 바이러스가 퍼지게 되면 차지하는 넓이를 구해주었다. 모든 경우에 대해서 해당 작업을 한 뒤, 빈칸의 개수의 최댓값이 답이다. 참고로, '[BOJ] 22953 도도의 음식준비' 문제와 비슷하다고 느꼈다. 22953번 도도의 음식 ..

PS/백준 2021.09.05

[백준] 22953 도도의 음식 준비 (C++)

22953번: 도도의 음식 준비 첫째 줄에 요리사의 수 $N$ ($1 \le N \le 10$), 만들어야 할 음식의 개수 $K$ ($1 \le K \le 1\,000\,000$), 격려해줄 수 있는 횟수 $C$ ($0 \le C \le 5$)가 주어진다. 둘째 줄에 길이가 $N$인 정수 수열 $A$가 주어 www.acmicpc.net 이번 여름 '신촌 알고리즘 연합 캠프 콘테스트 - 초급'에 나온 문제이다. 그 당시에 나는 이 문제를 풀지 못했었다. 문제에서 주방장이 요리사에게 격려하는 과정이 Greedy할 것이라고 생각해서 풀었기 때문이다. 격려를 한 뒤, 이분 탐색을 통해 최소 시간을 찾는 방식으로 문제를 풀었었고 당연히 틀렸다. 대회가 끝나고 다시 문제를 보니 격려해줄 수 있는 횟수가 매우 작아서..

PS/백준 2021.09.01