99클럽 코테 스터디 24일차 TIL
·
코딩테스트/99클럽 4기
풀이주어진 wires를 모두 한 번씩 끊었을 때 나올 수 있는 각각의 전력망에서,송전탑의 개수를 비교하여 차이를 반환해야 한다. 모든 wires를 끊어보려면 반복을 돌 때마다 전선 환경을 초기화해줘야 한다.만약 1, 3번 전선을 끊었을 때의 송전탑 차이를 계산했다면계산한 값을 저장해두고 끊었던 전선을 다시 연결해줘야 한다.위 과정을 반복해서 송전탑 차이가 가장 적은 값을 반환해 주면 된다. 구현import java.util.*;class Solution { private List[] tree; private boolean[] visited; public int solution(int n, int[][] wires) { int answer = Integer.MAX_VALUE; ..
99클럽 코테 스터디 23일차 TIL
·
코딩테스트/99클럽 4기
먼저, DFS를 사용하여 주어진 numbers에서 만들 수 있는 모든 숫자를 구해야 한다.DFS 탐색을 돌면서 중복되는 숫자가 만들어질 수 있는데, 만들어진 숫자는 Set에 저장하여 중복을 제거할 수 있다.Set에 저장된 숫자에서 에라토스테네스의 체를 사용하여 소수를 구한다.에라토스테네스의 체소수의 조건은 1과 자기 자신을 약수로 가지는 것이다.17의 경우 1과 17을 약수로 가지므로 소수다. 프로그램에서는 어떻게 판단할 수 있을까? 임의의 수 X가 있다면 X 미만 범위 안에서 2의 배수, 3의 배수... (X - 1)의 배수를 했을 때,X가 배수에 포함된다면 소수이고, 반대라면 소수가 아니다.boolean isPrime(int number) { if (number  구현import java.uti..
99클럽 코딩 테스트 22일차 TIL
·
코딩테스트/99클럽 4기
n번 던전부터 탐험을 시작했을 때 나올 수 있는 최대 던전 수를 구해야 한다.첫 번째 던전을 탐험하고 남은 피로도를 바탕으로 나머지 던전을 탐험해야 한다.던전을 탐험할 수 있는 모든 루트를 계산해야하기 때문에 DFS 가 사용된다.구현class Solution { public boolean[] visited; public int result = 0; public int solution(int k, int[][] dungeons) { visited = new boolean[dungeons.length]; dfs(0, k, dungeons); return result; } void dfs(int depth, int fatigue, int[][] ..
99클럽 코테 스터디 21일차 TIL
·
코딩테스트/99클럽 4기
먼저 전체 카펫의 크기는 brown + yellow이다.그리고 노란색 격자의 수는 1 이상이어야 하므로 세로의 길이는 3 이상부터 시작한다.반복문을 3부터 시작하여 전체 카펫 크기와 세로 길이를 나누면 가로길이를 구할 수 있다. 구현 1 - 실패import java.util.Arrays;class Solution { public int[] solution(int brown, int yellow) { int totalSize = brown + yellow; int col = 3; int row = totalSize / col; while (totalSize / col >= col) { if (totalSize % col == 0) ..