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) ..
99클럽 코테 스터디 20일차 TIL
·
코딩테스트/99클럽 4기
먼저 수포자마다 문제를 찍는 규칙을 정리해야 한다.1번1, 2, 3, 4, 52번2, 1, 2, 3, 2, 4, 2, 53번3, 3, 1, 1, 2, 2, 4, 4, 5, 5int[] rules1 = {1, 2, 3, 4, 5};int[] rules2 = {2, 1, 2, 3, 2, 4, 2, 5};int[] rules3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};주어진 문제의 정답과 각각의 규칙을 비교하면서 맞힌 개수를 세야 하는데,규칙마다 개수가 달라 문제의 수가 많은 경우, ArrayIndexOutOfBoundsException이 발생할 수 있다. 문제를 모두 비교할 때까지 규칙의 사이클이 돌 수 있도록 따로 인덱스를 설정해줘야 한다.문제 개수를 기준으로 반복문이 돌 때마다 규칙 전..