[프로그래머스] 두 수의 연산값 비교하기

2024. 11. 27. 10:15·PROBLEM SOLVING
728x90

문제 설명


연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.

- 12 ⊕ 3 = 123
- 3 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 2 \* a \* b 중 더 큰 값을 return하는 solution 함수를 완성해 주세요.

단, a ⊕ b와 2 \* a \* b가 같으면 a ⊕ b를 return 합니다.

 

 

제한사항


1 ≤ a, b < 10,000

 

 

입출력 예

a b result
2 91 364
91 2 912

 

 

입출력 예 설명


입출력 예 #"1"

- a ⊕ b = 291 이고, 2 \* a \* b = 364 입니다. 둘 중 더 큰 값은 364 이므로 364를 return 합니다.
입출력 예 #2

- a ⊕ b = 912 이고, 2 \* a \* b = 364 입니다. 둘 중 더 큰 값은 912 이므로 912를 return 합니다.

 

 

 

 

 

이 문제를 처음 접근할 때에는 if-else문을 사용해야겠다 생각했다.

그래서 다음과 같이 작성하였다.

class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        String aString = Integer.toString(a);
        String bString = Integer.toString(b);
        String abString = aString + bString;

        if (Integer.parseInt(abString) > (2 * a * b)) {
            answer = Integer.parseInt(abString);
            return answer;
        } else if (Integer.parseInt(abString) < (2 * a * b)) {
            answer = 2 * a * b;
            return answer;
        } else if (Integer.parseInt(bString) == (2 * a * b)) {
            answer = Integer.parseInt(abString);
            return answer;
        }

        return answer;
    }
}

a와 b를 각각 String으로 변환하였다. 그리고 단순하게 두 String을 합친 abString을 만들었다.

또한 if-else문을 사용해서 조건을 달았다.

 

그럼 더 단순하게 작성한 코드를 살펴보자.

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

String.valueOf(a)와 String.valueOf(b)는 각각 정수 a와 b를 문자열로 변환하는 역할을 한다.

그리고 중요한 Math.max()은 두 수 중 큰 값을 반환하는 역할을 한다.

 

나는 코드를 여러 줄로 작성하였지만 다른 사람들은 한 줄로 끝냈다...

확실히 자바의 내부 메서드를 잘 알고 작성하면 더 쉽게 접근할 수 있는 것 같다.

'PROBLEM SOLVING' 카테고리의 다른 글

[프로그래머스] 문자열 내 p와 y의 개수  (0) 2024.11.29
[프로그래머스] 대문자와 소문자  (0) 2024.11.28
[프로그래머스] 가위 바위 보  (0) 2024.11.26
[프로그래머스] 배열 비교하기  (0) 2024.11.26
[프로그래머스] 뒤에서 5등까지  (0) 2024.11.21
'PROBLEM SOLVING' 카테고리의 다른 글
  • [프로그래머스] 문자열 내 p와 y의 개수
  • [프로그래머스] 대문자와 소문자
  • [프로그래머스] 가위 바위 보
  • [프로그래머스] 배열 비교하기
sooindev
sooindev
테스트 아카이브
    250x250
  • sooindev
    test archive
    sooindev
  • 전체
    오늘
    어제
    • DEVELOPMENT (97) N
      • PROBLEM SOLVING (45) N
      • SIDE PROJECT (20)
        • AUTOFINDER (20)
      • NODE.JS (21)
        • NODE.JS (12)
        • NODE.JS 웹애플리케이션 제작 (9)
      • DATABASE (4)
        • MYSQL (4)
      • JAVA (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
    • Codewars
  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
sooindev
[프로그래머스] 두 수의 연산값 비교하기
상단으로

티스토리툴바