20231201 TIL

김민석·2023년 12월 1일
0
  1. 계획
  • 약먹고 휴식 (감기 회복)
  • 알고리즘 문제 풀이
  1. 오늘의 문제
    1) 최대공약수와 최소공배수
class Solution {
    public int[] solution(int n, int m) {
        int[] answer = new int[2];
        int temp = 0;
        int gcd = 0;
        int lcm = n*m;
        
        if(n<m){
            temp = n;
            n = m;
            m = temp;
        }
        
        while(m>0){
            int i = n%m;
            n = m;
            m = i;
        }
        
        lcm = lcm/n;
        
        answer[0] = n;
        answer[1] = lcm;
        
        return answer;
    }
}

유클리드 호제법을 이해하고 재귀함수를 사용하면 더 간단히 할 수 있을 것 같은데 내가 이해하고 쓴 코드는 좀 길어진 것 같다..

2) 3진법 뒤집기

class Solution {
    public int solution(int n) {
        String str = "";

        while (n != 0) {
            str += (n%3);
            n /= 3;
        }
        
        return Integer.parseInt(str, 3);
    }
}

머릿 속으로 생각한 계산법을 함수로 풀어내는 건 어렵지만 성공했을 때 쾌감이 있다. Integer 함수 안에는 내가 모르는 얼마나 많은 메소드가 있는걸까 ?

profile
개발자가 되고 싶지만 허덕이는 으른이

0개의 댓글