메모리: 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;
}
}
메모리: 77.1 MB, 시간: 0.03 ms - Answer Code1
메모리: 76.1 MB, 시간: 0.03 ms - Answer Code2
코딩테스트 연습 > 연습문제
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;
}
}
메모리: 71.9 MB, 시간: 0.64 ms - Answer Code1
메모리: 72.7 MB, 시간: 0.18 ms - Answer Code2
코딩테스트 연습 > 연습문제
class Solution {
public int[] solution(long n) {
String a = "" + n; // 문자열로 인식
int[] answer = new int[a.length()];
int cnt=0;
while(n>0) {
answer[cnt]=(int)(n%10);
n/=10;
System.out.println(n);
cnt++;
}
return answer;
}
}
class Solution {
public int[] solution(long n) {
String s = String.valueOf(n);
StringBuilder sb = new StringBuilder(s);
sb = sb.reverse();
String[] ss = sb.toString().split("");
int[] answer = new int[ss.length];
for (int i=0; i<ss.length; i++) {
answer[i] = Integer.parseInt(ss[i]);
}
return answer;
}
}
메모리: 77.2 MB, 시간: 0.02 ms
코딩테스트 연습 > 연습문제
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
while(n > 0) {
int div = 0;
div = n % 10;
answer += div;
n = n / 10;
}
return answer;
}
}
public class Solution {
public int solution(int n) {
int answer = 0;
String s = Integer.toString(n); //int n을 String으로 변환
for(int i=0; i<s.length(); i++){
answer += Integer.parseInt(s.substring(i, i+1));
}
return answer;
}
}