문제 https://level.goorm.io/exam/195701/%EB%8C%80%EC%B2%B4-%EA%B2%BD%EB%A1%9C/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 코드 import java.io.*; import java.util.*; class Main { static LinkedList arr []; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer..
문제 https://level.goorm.io/exam/195700/%EC%A4%91%EC%B2%A9-%EC%A0%90/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 풀이 dp 문제였고 dp 배열을 어떻게 설정하느냐만 결정되면 매우 쉬운 문제였다. 문제에서 중첩되는 점의 개수를 구하라고 되어있다. 중첩되는 점의 개수는 세로와 가로가 교차되는 개수를 의미한다. 즉, 각 칸에서의 세로선의 개수와 가로선의 개수를 구하면 된다. 위의 그림에서 3행2열에서는 가로선이 2개, 세로선이 1개로 2개의 교차점이 생긴다. 이와 같이 세로선의 개수와 가로선의 개수를 구하는 배열을 만들면 된다. 세로선의 개수를 구하는 배열 + 가로선의 개수를 구..
문제 https://level.goorm.io/exam/195699/%EA%B7%B8%EB%9E%98%ED%94%84%EC%9D%98-%EB%B0%80%EC%A7%91%EB%8F%84/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 풀이 이 문제도 전 문제와 같이 그래프 문제이다. 그래프에서의 완전탐색이므로 BFS를 이용하여 문제를 풀었다. 문제 내에서 구해야 하는 것은 3가지이다. 1. 그래프 컴포넌트 리스트 2. 그래프 컴포넌트 사이즈 3. 그래프 컴포넌트 사이의 회선 개수 1과 2 같은 경우는 여태까지 bfs를 풀었던 것처럼 구하면 된다. 다만 3번 같은 경우는 다음과 같이 구한다. bfs를 이용하여 그래프 컴포넌트 리스트..
문제 https://level.goorm.io/exam/195698/%EC%97%B0%ED%95%A9/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 풀이 그래프 완전 탐색문제는 BFS, DFS를 사용해야 하는데 BFS가 편하여 BFS를 사용하여 문제를 풀었다. 문제에서 조건은 다음과 같이 주어졌다. A섬과 B섬이 있을 때, 서로 이동할 수 있으면 연합이 될 수 있다. 연합 안에서 어떤 섬에서 출발해도, 연합의 모든 섬에 방문할 수 있어야 한다. 모든 섬은 하나의 연합에 속해있다. 1. visited 배열을 이용하여 섬의 방문여부를 나타내준다. 2. 그래프에서 내가 방문할 노드가 현재 노드에 연결되어 있는지 확인하고 마찬가지로 ..
문제 https://level.goorm.io/exam/195697/%EA%B3%BC%EC%9D%BC-%EA%B5%AC%EB%A7%A4/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 풀이 이 문제 같은 경우 과일을 나누어 살 수 있다고 문제에 제시되어 있다. 조각 과일의 가격이 1일때의 포만감인 C/P이 된다. 이 포만감을 가지고 큰 포만감 순으로 정렬을 한다. 과일의 가격이 K보다 작거나 같으면 (C/P * 과일 가격) 이 포만감이 될것이다. 만약 과일의 가격이 K보다 크다면 이는 조각난 과일을 선택해야 한다. 따라서 (C/P * K)가 포만감이 될것이다. 코드 import java.io.*; import java.util...
문제 https://level.goorm.io/exam/195696/%EC%9E%91%EC%9D%80-%EB%85%B8%EB%93%9C/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 코드 import java.io.*; import java.util.*; class Main { static LinkedList list []; static int count = 0; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer s..
문제 https://level.goorm.io/exam/195694/%EB%B0%9C%EC%A0%84%EA%B8%B0/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 풀이 문제에서 라고 되어있다. 이 문구를 보고 BFS로 풀면 되겠다고 생각했다. 상하좌우 인접한 집 중 하나가 전력을 공급받고 있다는 뜻은 상하좌우로 인접하면 모두 이어져서 하나의 발전기만 설치하면 된다는 뜻이기 때문이다. 0 1 0 1 0 1 1 1 1 따라서 다음과 같이 집이 있을때 이어진 집이 있다는 것을 확인했을때 2개의 발전기만 설치하면 된다. 따라서 BFS를 이용하여 그룹을 세면 된다. 코드 import java.io.*; import java.util...
문제 https://level.goorm.io/exam/195693/%ED%86%B5%EC%A6%9D-2/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 풀이 DP 문제라고 되어있었는데 DP 문제라고 하기에는 뭔가 아닌듯한 느낌이었다. 0이 될려면 a의 곱과 b의 곱을 더한 것이 n이 되어야 한다. 즉, n/b의 최대 몫을 구한다음 1씩 빼가면서 n의 나머지값을 구한다. 나머지 값을 a로 나누어 떨어졌을 때에는 그것이 답이 된다 코드 import java.io.*; import java.util.*; class Main { public static void main(String[] args) throws Exception { B..
문제 https://level.goorm.io/exam/195692/gamejam/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 코드 import java.io.*; import java.util.*; class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //입력값 저장 int N = Integer.parseInt(br.readLine()); StringTokenizer st; int[][] start = new int[2]..
문제 https://level.goorm.io/exam/195691/%ED%8F%AD%ED%83%84-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0-2/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 코드 import java.io.*; import java.util.*; class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.re..