본문 바로가기

Level 2 - 콜라츠 추측 1937년 Collatz란 사람에 의해 제기된 이 추측은, 입력된 수가 짝수라면 2로 나누고, 홀수라면 3을 곱하고 1을 더한 다음, 결과로 나온 수에 같은 작업을 1이 될 때까지 반복할 경우 모든 수가 1이 된다는 추측입니다. 예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. collatz 함수를 만들어 입력된 수가 몇 번 만에 1이 되는지 반환해 주세요. 단, 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요. 풀이 class Collatz { public int collatz(int num) { int answer = 0; while (true){ if (num % 2 == 0){ num = num / 2; } else { num .. 더보기
Level 2 - 정수 내림차순으로 배치하기 reverseInt 메소드는 int형 n을 매개변수로 입력받습니다. n에 나타나는 숫자를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. n은 양의 정수입니다. 풀이 import java.util.*; public class ReverseInt { public int reverseInt(int n){ String strNum = String.valueOf(n); int[] arr = new int[strNum.length()]; for (int i = 0; i 더보기
Level 1 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환해주는 gcdlcm 함수를 완성해 보세요. 배열의 맨 앞에 최대공약수, 그 다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 gcdlcm(3,12) 가 입력되면, [3, 12]를 반환해주면 됩니다. 풀이 import java.util.Arrays; class TryHelloWorld { public int[] gcdlcm(int a, int b) { if( a 더보기
Level 1 - 나누어 떨어지는 숫자 배열 divisible 메소드는 int형 배열 array와 int divisor를 매개변수로 받습니다. array의 각 element 중 divisor로 나누어 떨어지는 값만 포함하는 새로운 배열을 만들어서 반환하도록 divisible에 코드를 작성해 보세요.예를들어 array가 {5, 9, 7, 10}이고 divisor가 5이면 {5, 10}을 리턴해야 합니다. 풀이import java.util.Arrays; import java.util.ArrayList; import java.util.List; class Divisible { public int[] divisible(int[] array, int divisor) { //ret에 array에 포함된 정수중, divisor로 나누어 떨어지는 숫자를 순서대로.. 더보기
Level 1 - 문자열 내림차순으로 배치하기 reverseStr 메소드는 String형 변수 str을 매개변수로 입력받습니다. str에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 String을 리턴해주세요. str는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 예를들어 str이 Zbcdefg면 gfedcbZ을 리턴하면 됩니다. 풀이import java.util.Arrays; public class ReverseStr { public String reverseStr(String str){ char[] chars = str.toCharArray(); Arrays.sort(chars); return new StringBuffer(new String(chars)).reverse().toString(); } //.. 더보기
Level 1 - 피보나치 수 피보나치 수는 F(0) = 0, F(1) = 1일 때, 2 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 점화식입니다. 2 이상의 n이 입력되었을 때, fibonacci 함수를 제작하여 n번째 피보나치 수를 반환해 주세요. 예를 들어 n = 3이라면 2를 반환해주면 됩니다. 풀이import java.util.LinkedList; class Fibonacci { public long fibonacci(int num) { if (num == 0 || num == 1) return num; else { LinkedList lists = new LinkedList(); lists.add(0L); lists.add(1L); for (int i = 2; i 더보기
Level 1 - 최대값과 최소값 getMinMaxString 메소드는 String형 변수 str을 매개변수로 입력받습니다. str에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 String을 반환하는 메소드를 완성하세요. 예를들어 str이 1 2 3 4라면 1 4를 리턴하고, -1 -2 -3 -4라면 -4 -1을 리턴하면 됩니다. 풀이import java.util.Arrays; public class GetMinMaxString { public String getMinMaxString(String str) { String [] strNumbers = str.split(" "); int[] numbers = new int[strNumbers.length].. 더보기
Level 1 - 수박수박수박수박수박수 water_melon함수는 정수 n을 매개변수로 입력받습니다. 길이가 n이고, 수박수박수...와 같은 패턴을 유지하는 문자열을 리턴하도록 함수를 완성하세요.예를들어 n이 4이면 '수박수박'을 리턴하고 3이라면 '수박수'를 리턴하면 됩니다. 풀이public class WaterMelon { public String watermelon(int n){ String result = ""; for(int i = 1; i 더보기
Level 1 - 가운데 글자 가져오기 getMiddle메소드는 하나의 단어를 입력 받습니다. 단어를 입력 받아서 가운데 글자를 반환하도록 getMiddle메소드를 만들어 보세요. 단어의 길이가 짝수일경우 가운데 두글자를 반환하면 됩니다. 예를들어 입력받은 단어가 power이라면 w를 반환하면 되고, 입력받은 단어가 test라면 es를 반환하면 됩니다. 풀이 class StringExercise{ String getMiddle(String word){ String result = ""; int middle = (word.length() / 2); if (word.length() % 2 == 0) { middle = (word.length() / 2); result += String.valueOf(word.charAt(middle - 1)); .. 더보기
Level 1 - 수박수박수박수박수박수? water_melon함수는 정수 n을 매개변수로 입력받습니다. 길이가 n이고, 수박수박수...와 같은 패턴을 유지하는 문자열을 리턴하도록 함수를 완성하세요.예를들어 n이 4이면 '수박수박'을 리턴하고 3이라면 '수박수'를 리턴하면 됩니다.풀이public class WaterMelon { public String watermelon(int n){ String result = ""; for(int i = 1; i 더보기