[ 프로그래머스 Lv.0 | Java ] 더 크게 합치기

dokim·2023년 8월 28일
0
post-thumbnail

🏷️더 크게 합치기


1. 해결 전략

  • 먼저 정수 String.valueOf()를 사용하여 ab를 문자열로 형변환을 하여 a+b, b+a 연산합니다.
  • 연산 시 변수 a에만 String.valueOf(a)를 사용하여도 문자열 + 정수는 문자열로 형변환이 일어나므로 문제없습니다.
  • Integer.parseInt()를 사용하여 연산 결과를 비교하여 원하는 결과값을 반환합니다.

2. 구현코드

✅ Integer.parseInt()

✅ String.valueOf()

class Solution {
    public int solution(int a, int b) {
        int case1 = Integer.parseInt(String.valueOf(a) + String.valueOf(b));
        int case2 = Integer.parseInt(String.valueOf(b) + String.valueOf(a));
        return case1 > case2 ? case1 : case2;
    }
}

3. 시간 & 공간 복잡도

  • 시간 복잡도: O(1)
  • 공간 복잡도: O(1)

4. Refatoring

✅ Math.max()

✅ Integer.parseInt("" + a)

class Solution { 
    public int solution(int a, int b) {
        return Math.max(Integer.parseInt("" + a + b), Integer.parseInt("" + b + a));
    }
}
  • 이전에는 String.valueOf(a)를 사용하여 문자열로 형변환을 하였는데 메소드 사용없이 위와 같이 사용하면 자동 형변환이 되고 가독성을 높일 수 있는 것 같습니다.
  • 이전 코드에서는 삼항연산자를 사용하여 비교를 하였지만 Math.max()를 사용하여 간결하게 코드를 작성할 수 있었습니다.

5. 후기 및 반성

  • 아무리 간단한 문제라도 어떻게 생각하고 어떻게 접근하느냐에 따라 코드의 효율성과 가독성, 성능이 달라지는 것을 체감하고 있습니다.
  • 계속해서 코드리뷰를 하면서 코드를 분석해서보 공부해가는 과정이 점점 즐겁습니다.😊

0개의 댓글