메모리: 72.8 MB, 시간: 0.33 ms
코딩테스트 연습 > 연습문제
import java.util.*;
class Divisible {
public int[] divisible(int[] arr, int divisor) {
int cnt = 0;
int num = 0;
for(int i = 0; i < arr.length; i++) {
if(arr[i] % divisor == 0) {
cnt++;
}
}
if(cnt == 0) {
int[] answer = {-1};
return answer;
}
int[] answer = new int[cnt];
for(int i = 0; i < arr.length; i++) {
if(arr[i] % divisor == 0) {
answer[num] = arr[i];
num++;
}
}
Arrays.sort(answer);
return answer;
}
}
메모리: 96 MB, 시간: 8.00 ms - Answer Code1
메모리: 78.1 MB, 시간: 0.04 ms - Answer Code2
코딩테스트 연습 > 연습문제
class Solution {
public long[] solution(int x, int n) {
long[] answer = new long[n];
long ans = x;
for(int i = 0; i< n; i++) {
answer[i] = ans;
ans += x;
}
for(int i = 0; i < n; i++) {
System.out.print(answer[i]);
}
return answer;
}
}
import java.util.*;
class Solution {
public static long[] solution(int x, int n) {
long[] answer = new long[n];
answer[0] = x;
for (int i = 1; i < n; i++) {
answer[i] = answer[i - 1] + x;
}
return answer;
}
}
메모리: 82.8 MB, 시간: 0.02 ms - Answer Code1
메모리: 75.4 MB, 시간: 0.13 ms - Answer Code2
코딩테스트 연습 > 연습문제
import java.util.*;
class Solution {
public boolean solution(int x) {
boolean answer = true;
int sum = 0;
int number = x;
while(number > 0) {
int div = number % 10;
sum += div;
number /= 10;
}
if(x % sum == 0) {
answer = true;
} else {
answer = false;
}
return answer;
}
}
class Solution {
public boolean solution(int num) {
String[] temp = String.valueOf(num).split("");
int sum = 0;
for (String s : temp) {
sum += Integer.parseInt(s);
}
if (num % sum == 0) {
return true;
} else {
return false;
}
}
}
메모리: 70 MB, 시간: 0.033 ms
코딩테스트 연습 > 연습문제
import java.util.*;
class Solution {
public long solution(long n) {
String [] list = String.valueOf(n).split("");
Arrays.sort(list);
StringBuilder sb = new StringBuilder();
for(String alist : list) {
sb.append(alist);
}
return Long.parseLong(sb.reverse().toString());
}
}
java.lang.Math클래스의 sqrt() 메서드다.
double타입의 인수를 전달하면 인수에 대한 double타입의 제곱근 값을 리턴한다.
제곱근은 음수가 나올 수 없으므로 음수를 입력하면 NaN(Not a Number)을 리턴한다.
public class Sqrt {
public static void main(String[] args) {
double result = Math.sqrt(49); //49의 제곱근
System.out.println("47의 제곱근 : "+ result); // 결과: 7
}
}
public class Pow {
public static void main(String[] args) {
double result = Math.pow(7, 2); //7의제곱
System.out.println("7의 제곱은 : "+result); // 결과: 49
}
}
해당 문제에서 Math.sqrt 와 Math.pow를 이용하여 문제를 해결하였다.
처음에는 어떤 값의 제곱근을 판별하는 방법이 떠오르지 않아서 아래와 같은 방법으로 사용하였고, 다른 풀이에서는 sqrt와 pow만으로 판별하는 방법을 알게되어서 또 하나의 배움을 얻었다.
if(number%1 == 0){
println("It is an integer");
} else {
println("It is not an integer");
}
class Solution {
public long solution(long n) {
long answer = 0;
double result = Math.sqrt(n);
if(result % 1 == 0) {
answer = ((long)result+1) * ((long)result+1);
} else
answer = -1;
return answer;
}
}
class Solution {
public long solution(long n) {
if (Math.pow((int)Math.sqrt(n), 2) == n) {
return (long) Math.pow(Math.sqrt(n) + 1, 2);
}
return -1;
}
}