백준 8

[백준] 포도주 시식

문제는 다음 링크를 통해 볼 수 있다. 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 문제 풀이 이번 문제는 DP 문제이다. 문제에서 주어진 조건은 다음과 같다. 포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다. 연속으로 놓여 있는 3잔을 모두 마실 수는 없다. 이번 문제에서 중요한 조건은 바로 2번 조건이다. 연속으로 3잔을 마실 수 없기 때문에 이 부분을 고려해야 한다. 먼저 와인이 1잔이 있을 때를 생각해보자. 와인이 1잔만 있다면 한잔을 마..

백준 2024.04.10

[백준 7569] 토마토 문제 풀이(JAVA)

문제는 다음 링크를 통해 볼 수 있다 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 문제 풀이 이번 문제는 dfs문제이다 익은 토마토가 있는 위치에서 위, 아래, 왼쪽, 오른쪽, 앞, 뒤중 익지 않은 토마토를 찾아 익은 토마토로 바꿔주면 되는 문제이다. 간단한 순서는 다음과 같다. 현재 익은 토마토의 위치를 큐에 모두 저장한다 큐의 사이즈를 저장한다 큐에서 익은 토마토 위치 하나를 꺼내고 해당 위치로부터 익힐 수 있는 토마토의 위치를 큐에 넣고 익은 토마토로 변경한다. 3번을 2에서 ..

백준 2024.01.26

[JAVA] 백준 22871 징검다리 건너기(이분 탐색)

문제는 다음 링크를 통해 볼 수 있다 22871번: 징검다리 건너기 (large) $N$개의 돌이 일렬로 나열 되어 있다. $N$개의 돌에는 왼쪽부터 차례대로 수 $A_{1} A_{2} ... A_{i} ... A_{N}$로 부여되어 있다. 가장 왼쪽에 있는 돌에서 출발하여 가장 오른쪽에 있는 돌로 건너가려고 www.acmicpc.net 문제 풀이 이번 문제를 풀기 위해 이분 탐색과 스택을 같이 사용했다. 아이디어는 다음과 같다 먼저 이분 탐색은 최소 힘을 탐색하는데 사용된다. 배열이 다음과 같이 주어졌을 때 이분 탐색은 다음과 같은 방법으로 수행된다. mid를 수정해 나가면서 어떤 값이 가장 최소 값인지 탐색하는 것이다. 그러면 mid가 최소값인지 판별하는 방법은 뭘까? 직접 경우에 수를 따져보는 것이..

백준 2024.01.11

백준 15649번 문제 C++

1단계: 문제 파악 이번 문제는 숫자를 중복되지 않게 뽑아서 이를 나열하는 경우를 구하는 문제이다. 이 문제는 숫자를 중복되지 않게 뽑는 방법과 뽑힌 숫자를 나열하는 방법을 알아보는 문제이다. 2단계: 배경 지식 이 부분은 DFS와 백트래킹에 대한 더 자세한 공부 후 수정하겠다. 3단계: 문제 풀이 이 부분은 DFS와 백트래킹에 대한 더 자세한 공부 후 수정하겠다. 4단계: 코드 작성 #include int combination[9]; int m, n; bool visited[9] = { false, }; void Depth_First_Search(int count) { if (count == m) { for (int i = 0; i < m; i++) { printf("%d ", combination[i..

백준 2022.01.24

백준 2557번 문제 C++

1 단계: 문제 파악 이번 문제는 "Hello world!"라는 문자열을 찍어내는 문제이다. 이 문제는 화면에 우리가 원하는 문자를 출력할 수 있는지를 알아보는 문제이다. 2단계: 배경 지식 여기서 우리가 필요한 내용은 C++로 문자 출력하는 법을 알아야 한다. C++에서 문자는 cout을 이용하여 출력할 수 있다. 아니면 C스타일의 printf를 사용할 수도 있다. cout이 printf보다 사용하기는 편하지만 속도면에서는 printf가 빠르다. 만약 cout을 이용하여 빠른 속도를 내고 싶으면 아래 코드를 추가하면 된다. 하지만 이 코드를 사용하게 되면 printf와 cout을 같이 쓸 수 없으니 주의해야한다. ios_base::sync_with_stdio(false); cin.tie(NULL); c..

백준 2022.01.18