본문 바로가기

알고리즘연습/Epper4

[Epper] 백준 19538 루머 java 문제 귀찮아서 생략.. 백준 문제와 달리 이퍼 시험에서는 메인 함수를 작성하지 않아도 되기 때문에 따로 입력받지 않고 그냥 예시에 나와있는 값으로 하였다. 또 풀이를 쉽게 하기 위해 처음에 0을 추가로 입력시켜 주었다. 풀이 백준의 바이러스 문제와 비슷하게 감염을 시키는 문제이다. 이 문제 역시 bfs를 사용하여 풀 수 있다. solution 함수에 대해서 설명하자면 answer은 반환할 정답 배열, turn은 몇명 이상이 감염되어야 i번 사람이 감염되는지 저장하는 배열이다. turn 배열은 bfs를 진행하면서 i의 주변인이 감염되면 turn[i-1]-=1(배열 인덱스는 0부터 시작하기 때문에 -1을 해줌)을 해주고 이 값이 0이하가 되면 감염되는 코드이다. answer배열을 -1로 초기화하는 이유는 해.. 2021. 9. 4.
[Epper] 사다리(집으로 가는 길) 문제 겨울이와 친구들은 자신의 집으로 돌아가야 합니다. 겨울이 포함 4명의 사람이 있다고 했을 때, 현재 각 사람이 갈 수 있는 길은 그림1과 같습니다. 편의를 위해 사람에게 번호를 부여하였으며, 각 집에는 살고 있는 사람의 번호로 표시됩니다. 이런 도로상황에서, 우리는 강을 가로지르는 다리를 추가할 수도 하지 않을 수도 있습니다. 다리 추가 작업을 마친 후, 각 사람은 도로를 따라 목표지점인 본인 번호의 집까지 가야합니다. 1번사람을 예시로 들면, 아무런 다리가 설치되어 있 지 않을 경우, 3번집으로 가게 됩니다. 하지만 그림2 와 같은 다리가 놓여있을 경우라면, 모든 사람은 그림3처럼 빨간 경로를 따라 자신의 집에 도착하게 됩니다. 1번 사람은 1번 집, 2번사람은 2번 집, 3번 사람은 3번집, 4.. 2021. 9. 2.
[Epper] 정수삼각형 java 자바 문제 풀이 문제에서 힌트를 줬듯이..ㅋㅋㅋㅋ dp를 이용하여 풀면 된다. dp를 초기화해주어야 하는데 가장 밑의 층을 입력받은 배열 값들로 초기화해준 후 시작한다. solution 함수에서는 인덱스 값 i, j를 파라미터로 받고 해당 인덱스의 dp 값이 0일 경우에 연산을 진행한다. 이때 아직 의문인 게.. i==n-1일 경우에 dp[i][j]를 return해주도록 작성을 해야 정답이 맞다고 나오는데 이미 초기화를 해주어서 상관 없는 거 아닌가 했는데.... 아닌가보다...... 모범 답안 나오면 그때 다시 확인해보는 걸로... 코드 package Level3; import java.util.Scanner; public class E14No9_정수삼각형 { static int[][]dp; static i.. 2021. 8. 18.
[Epper] 백준 1074번 Z java 자바 문제 https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, N > 1이 라서 www.acmicpc.net 한수는 크기가 2^N × 2^N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, N > 1이 라서 왼쪽 위에 있는 칸이 하나가 아니라면, 배열을 크기가 2^(N-1) × 2^(N-1)로 4등분 한 후에 재귀적으로 순서대로 방문한다. 다음 예는 2^2 × 2^2 크기의 배열.. 2021. 8. 16.