
class Solution {
public long solution(long n) {
long sqrt = (long) Math.sqrt(n);
return Matn.pow(sqrt ,2)==n ? (long)Math.pow(sqrt +1 ,2) : -1;
}
}

class Solution {
public int[] solution(int[] arr) {
if(arr.length == 1){ // arr의 길이가 1이라면
int[] answer = {-1}; // 정수배열 answer의 값은 -1이다.
return answer; //그때 리턴
}
int[] answer = new int[arr.length-1];//최솟값하나를 빼주면 자연스레 길이도 하나 줄어듬
int minIndex=0; //최솟값
for(int i=0;i<arr.length;i++){
if(arr[minIndex]>arr[i]){ // 결국에는 가장작은수가 나옴
minIndex = i;
// ex) 4 -> 3 -> 2 -> 1
}
}
for(int i=minIndex+1;i<arr.length;i++){
arr[i-1] = arr[i];
}
for(int i=0;i<answer.length;i++){
answer[i] = arr[i];
}
return answer;
}
}
1-1. 입력된 수가 짝수라면 2로 나눕니다.
1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다.
2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다.
예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야하는지 반환하는 함수, solution을 완성해 주세요. 단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요.
제한 사항
입력된 수, num은 1 이상 8000000 미만인 정수입니다.
입출력 예

입출력 예 설명
입출력 예 #1
문제의 설명과 같습니다.
입출력 예 #2
16 -> 8 -> 4 -> 2 -> 1 이되어 총 4번만에 1이 됩니다.
입출력 예 #3
626331은 500번을 시도해도 1이 되지 못하므로 -1을 리턴해야합니다.
class Solution {
public int solution(int n) {
long num =n; //오버플로우 방지를위한 형변환
int count =0;
while(num !=1) {
if (num % 2 ==0) //짝수일 경우
num /= 2;
else //홀수일 경우
num =num*3+1;
count++;
if (count >500)
return -1;
}
return count;
}
}

class Solution {
public boolean solution(int x) {
int sum =0;
int n =x;
while ( n >0 ) {
sum += n %10; //(나머지값을 알수있음)
n/=10; //(앞자리수를 구해서 1보다 작아질때까지 계속 반복시킴)
}
return x %sum ==0 ? true :false;
}
}
if , else 뒤에 한줄씩은 괄호를 안써도 인식을 한다.
Math.sqrt() - 제곱근으로 변환시키기
Math.pow(제곱근(6) , 제곱수(3)) = Ex) 6의3제곱이라는뜻임