코딩테스트

[프로그래머스/JAVA] 더 크게 합치기 (Integer.toString(), Integer.parseInt(), Math.max(a,b))

데메즈 2025. 7. 16. 15:14
반응형

class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        String strA = Integer.toString(a);
        String strB = Integer.toString(b);
        String strAB = strA + strB;
        String strBA = strB + strA;
        int ab = Integer.parseInt(strAB);
        int ba = Integer.parseInt(strBA);
        
        if(ab >= ba) answer = ab;
        else answer = ba;
        
        
        return answer;
    }
}

 

다른 풀이
class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        int aLong = Integer.parseInt(""+a+b);
        int bLong = Integer.parseInt(""+b+a);
        answer = aLong > bLong ? aLong : bLong;

        return answer;
    }
}

a > b ? a : b;

class Solution {
    public int solution(int a, int b) {
        return Math.max(Integer.parseInt(a + "" + b), Integer.parseInt(b + "" + a));
    }
}

Math.max(a,b);

 

class Solution {
    public int solution(int a, int b) {
        int answer = 0;

        // a, b의 자릿수 구하기
        int lengthA = (int) (Math.log10(a)+1);
        int lengthB = (int) (Math.log10(b)+1);

        // a+b, b+a 구하기
        int addAB = (int) (a * Math.pow(10, lengthB) + b);
        int addBA = (int)(b * Math.pow(10, lengthA) + a);

        // 값 비교
        if(addAB >= addBA){
            answer = addAB;
        }
        else if(addAB < addBA){
             answer = addBA;
        }

        return answer;
    }
}

Math.log10()

Math.pow()

반응형