본문 바로가기

Algorithm

자바 알고리즘 연습(4)

문자열을 정수로 바꾸기

class Solution {
    public int solution(String s) {
        int answer = Integer.parseInt(s);
        return answer;
    }
}

 

정수 제곱근 판별

class Solution {
    public long solution(long n) {
        long answer = 0;

        for (long i = 1; i < 50000000; i++){
            if (n / i == i && n % i == 0){
                return (i+1) * (i+1);
            }
        }
        return -1;
    }
}

 

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

  •   앞으로 문제를 풀 때는 import java.util.*;    하기!
import java.util.ArrayList;
class Solution {
    public Long solution(long n) {
        long answer = 0;
        ArrayList<Long> list = new ArrayList<Long>();
        
        while(n > 0){
            list.add(n % 10);
            n /= 10;
        }
        
        for(int i = 0; i < list.size(); i++){
            for(int j = i + 1; j < list.size(); j++){
                if(list.get(i) < list.get(j)){
                    long temp = list.get(j);
                    list.set(j, list.get(i));
                    list.set(i, temp);
                }
            }
        }
        
        int idx = 1;
        for (int i = list.size() - 1; i >= 0; i--){
            answer = answer + (list.get(i) * idx);
            idx = idx * 10;
        }
        
        
        return answer;
    }
}

 

다른 사람의 풀이 1

  • string을 순회하는 방법 : String s = str.substring(i, i+1);
class Solution {
    public long solution(long n) {
        String answer = "";
        String str = Long.toString(n);
        
        int[] arr = new int[str.length()];
        
        //long타입의 숫자를 Int배열로 올긴다.
        for(int i = 0; i < str.length(); i++) {
            String s = str.substring(i, i+1);
            arr[i] = Integer.parseInt(s);
        }
        
        //내림차순 정렬
        for(int j = 0; j < str.length()-1; j++){
            for(int i = 0; i < str.length()-1; i++) {
                if (arr[i] < arr[i+1]) {
                    int tmp = arr[i+1];
                    arr[i+1] = arr[i];
                    arr[i] = tmp;
                }
            }
        }
        
        for(int i = 0; i < str.length(); i++){
            answer += arr[i];
        }
        
        return Long.parseLong(answer);
    }
}

 

다른 사람 풀이 2

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());
  }
}

 

 

'Algorithm' 카테고리의 다른 글

11286 절댓값 힙 / 우선순위 큐  (0) 2025.01.08
자바 알고리즘 연습(5)  (0) 2025.01.07
1927 최소 힙 / 우선순위 큐  (0) 2025.01.06
11279 최대 힙 / 우선순위 큐  (0) 2025.01.04
자바 알고리즘 연습(3)  (0) 2025.01.03