CODEKATA 16 ~ 20

Tak Jeon·2024년 12월 27일

알고리즘

목록 보기
47/101

16번 x만큼 간격이 있는 n개의 숫자

class Solution {
    public long[] solution(int x, int n) {
        long[] answer = new long[n];
        long cur = x;
        for(int i = 0 ; i < n ; i++){
            answer[i] = cur;
            cur += x;
        }
        return answer;
    }
}

17번 자연수 뒤집어 배열로 만들기

import java.util.*;

class Solution {
    public int[] solution(long n) {
        ArrayList<Integer> list = new ArrayList<>();
        while(n > 0){
            list.add((int)(n % 10));
            n /= 10;
        }
        int[] answer = new int[list.size()];
        for(int i = 0 ; i < list.size() ; i++){
            answer[i] = list.get(i);
        }
        return answer;
    }
}

18번 문자열을 정수로 바꾸기

class Solution {
    public int solution(String s) {
        if(s.charAt(0) == '-'){
            return -1 * Integer.parseInt(s.substring(1));
        }else{
            return Integer.parseInt(s);
        }
    }
}

19번 정수 제곱근 판별

class Solution {
    public long solution(long n) {
        double root = Math.sqrt(n);
        long root_int = (long)root;
        if(root != root_int){
            return -1;
        }
        return (long)Math.pow(root_int + 1, 2);
    }
}

20번 정수 내림차순으로 배치하기

import java.util.*;

class Solution {
    public long solution(long n) {
        ArrayList<Long> list = new ArrayList<>();
        while(n > 0){
            list.add(n % 10);
            n /= 10;
        }
    
        Collections.sort(list, Comparator.reverseOrder());
        long answer = 0;
        for(long cur : list){
            answer = (answer + cur) * 10;
        }
        answer /= 10;
        
        return answer;
    }
}
profile
문제 해결을 좋아하는 개발자 입니다 :)

0개의 댓글