본문 바로가기

알고리즘 & 자료구조569

연속 부분 수열 합의 개수 package programmers; import java.util.HashSet; import java.util.Set; public class 연속부분수열합의개수 { public static int solution(int[] elements) { Set ans = new HashSet(); for (int i = 1; i elements.length - 1) { sum += elements[j + k - elements.length]; } else { sum += elements[j + k]; } } ans.add(sum); } } return ans.size(); } public static void main(String[] args) { System.out.println(solution(new i.. 2023. 1. 26.
K진수에서 소수 개수 구하기 package programmers; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; public class K진수에서소수개수구하기 { public static int solution(int n, int k) { List nums = init(n, k); int answer = 0; for (String s : nums) { if (isPrime(Long.parseLong(s))) { answer++; } } return answer; } private static boolean isPrime(long num) { if (num == 1) { return false; } for (int i = 2; i.. 2023. 1. 25.
타겟 넘버 package programmers; import java.util.LinkedList; import java.util.Queue; public class 타겟넘버 { public static int solution(int[] numbers, int target) { // return dfs(numbers, target, 0, 0); return bfs(numbers, target); } private static int bfs(int[] numbers, int target) { Queue q = new LinkedList(); q.add(new Pair(0, numbers[0])); q.add(new Pair(0, numbers[0] * -1)); int answer = 0; while (!q.isEm.. 2023. 1. 23.
귤 고르기 package programmers; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; public class 귤고르기 { //1 2023. 1. 22.
전화번호 목록 package programmers; import java.util.Arrays; public class 전화번호목록 { //1 2023. 1. 21.
뉴스 클러스터링 package programmers; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; public class 뉴스클러스터링 { //자카드 유사도 : 집합 간의 유사도를 검사하는 방법 //두 집합 A,B 사이의 자카드 유사도 J(A,B)는 두 교집합 크기를 두 집합의 합집합 크기로 나눈 값으로 정의 //문자열 유사도 계산 //FRANCE , FRENCH , 2글자씩 끊어서 //A={FR,RA,AN,NC,CE} B={FR,RE,EN,NC,CH} //A ∩ B = {FR,NC} A ∪ B = {FR,RA,AN,NC,CE,RE,EN,CH} 2/8 = 0.25 //2 2023. 1. 20.