프로그래머스56 알고리즘(소수 찾기, 더 맵게, H-Index) [소수 찾기] * 로직 1개부터 numbers.length()개 만큼 뽑는 경우의 수를 모두 구한다 (각 순열의 합) 경우의 수를 구하게 되면 해당 숫자가 이전에 존재했는지 확인한다 존재하지 않았다면 소수 판별을 진행하고, 만약 소수라면 개수를 카운팅한다 해당 경우의 수를 마킹한다 위 과정을 반복한다 //소수찾기 import java.util.HashMap; import java.util.LinkedList; public class Problem_FindPrimeNum { static boolean[] checekd; static HashMap hashMap; static int result; public static void main(String[] args) { String numbers = "011.. 2020. 4. 14. 알고리즘(문자열 압축, 큰 수 만들기) [문자열 압축] * 로직 단어의 비교 묶음을 1개부터 (문자열 길이/2)개까지 늘려가면서 압축을 진행한다 이전과 같은 문자라면 카운팅을 진행해주고, 그렇지 않다면 이전까지 카운팅된 수에 맞게끔 압축을 진행한다 카운팅된 수가 1개라면 1을 생략한다 2개 이상이라면 숫자를 넣어준다 (문자열의 길이 / 단어의 비교 묶음)이 홀수라면 문자열의 뒷부분이 고려가 안되기 때문에 따로 남은 부분을 압축된 문자열 뒤에 붙여준다 압축된 문자열을 받게되면 해당 문자열의 길이를 세고, 최솟값으로 갱신한다 class Solution { public int solution(String s) { int answer = Integer.MAX_VALUE; if(s.length() == 1) return 1; //단어의 묶음을 1개부터.. 2020. 4. 10. 알고리즘(소수 만들기, 점프와 순간이동, 영어 끝말잇기) [소수 만들기] * 로직 주어진 숫자 중 3개의 수를 더했을 때 만들 수 있는 경우의 수를 만든다(조합) 조합이 만들어질 때마다 해당 숫자가 소수인지 판별한다 소수라면 답을 카운팅해준다 //소수 만들기 public class Problem_Decimal { static int result; public static void main(String[] args) { int[] nums = {1,2,3,4}; int answer = solution(nums); System.out.println(answer); } public static int solution(int[] nums) { int answer = -1; //조합 구하기 int count = 0; int index=0; int limit = 3; i.. 2020. 4. 6. 이전 1 ··· 7 8 9 10 11 12 13 ··· 19 다음