문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요. 문자열에서 중복된 문자를 제거하는 문제이다. Try 1) String answer = ""; HashSet temp = new HashSet(); for(int i = 0; i < my_string.length(); i++){ temp.add(my_string.charAt(i)); System.out.println(temp); } System.out.println(temp); return answer; 자바의 자료구조 중 Set(세트)가 중복을 허용하지 않는 경우가 있어 HashSet을 사용해보았다. HashSet을 사용한 결과..
소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. 2, 3, 5, 7일 경우의 조건과 나눠지는 부분이 아직 남아있을 경우의 조건들을 일일이 작성해보았지만, 조건문을 만족하지 못하는 경우가 생기기도 하였고 무한루프를 돌게 되었다. Try 1) int[] answer = {}; List save = new ArrayList(); int k = 0; while(n > 0) { // 낱개로 남았을때의 처리 if(n == 2 && n == 3 && n == 5 ..
문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요. 문자열 안에서 숫자(정수형)를 찾아 리스트화 시키고 오름차순 정렬까지 하는 문제이다. 처음에는 문자열을 charAt()으로 하나하나 쪼개어 0~9범위에 해당하는지를 검사하고자 하였음 Try 1) List temp = new ArrayList(); int string_num = 0; int test_num = 0; for(int i = 0; i 문자형이므로 Integer.parseInt()로 한..
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요. Try 1) int answer = 0; // 첫번째 최대값을 구하는 반복문 int max = Integer.MIN_VALUE; for(int i = 0; i < numbers.length; i++) { if(max < numbers[i]) max = numbers[i]; } // 두번째로 큰 최대값을 구하는 반복문 int max2 = Integer.MIN_VALUE; for(int i = 0; i < numbers.length; i++) { if(max2 < numbers[i] && max != numbers[i]) max2 = numb..
영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요. Try 1) StringBuffer sb = new StringBuffer(); sb.append(my_string); int target = -1; for(int i = 0; i < my_string.length(); i++) { if(my_string.contains("a") || my_string.contains("e") || my_string.contains("i") || my_string.contains("o") || my_string.contains("u")) { target = i; } if(..
정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. n의 약수도 구하고, 오름차순 정렬까지하는 문제이다. 정렬을 편히 하기 위해 리스트를 선언하고자 하였다. 가장 첫번째 수는 무조건 1이므로 temp.add(0, 1); 로 0번째 수는 넣어주었다. 약수는 1을 제외한 수이므로 temp.remove(0); 을 통해 모든 약수를 구한 후에는 다시 1을 지워주었다. public class divisor { // 리스트를 활용하여 answer에 약수를 담음 public static int[] solution(int n) { List temp = new ArrayList(); temp.add(0, 1); int k = 1; for(int ..
약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요. 먼저 합성수의 개념을 알고, 약수를 찾는 로직을 작성해야했다. Try 1) public static int solution(int n) { int answer = 0; List temp = new ArrayList(); int k = 0; int cnt = 0; // 테스트케이스 // // i = 1, n = 10 // if(n % i == 0){ // i = {1, 2, 5, 10} // 1부터 ~ n까지 반복하면서 for(int i = 2; i > 약수찾기 로직을 활용해 풀어보고자 하였지만 잘 되지 않았던 첫시도였다. // 약수 찾기 ..