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

YH·2023년 10월 30일
0

문제

두 수의 연산값 비교하기 : 문제 링크


문제 분석

  • 연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환한다. 예를 들면 다음과 같다.
    • 12 ⊕ 3 = 123
    • 3 ⊕ 12 = 312
  • 양의 정수 a와 b가 주어졌을 때, a ⊕ b와 2 x a x b 중 더 큰 값을 return. 단 a ⊕ b와 2 x a x b가 같으면 a ⊕ b를 return
  • 제곱수를 계산하기 위해 pow() 함수를 사용할 것 이므로 cmath 헤더를 포함. b값을 복사하여 저장할 b_c 및 b의 자릿수를 계산하기 위한 check 변수를 각각 b, 0으로 초기화
  • while loop를 통해 한번씩 돌때마다 check를 1씩 늘려서, b의 자릿수를 계산. answer에 a ⊕ b를 계산한 값을 저장하고, 삼항 연산자를 통해 2 x a x b와 비교하여 큰 값을 return(같을 경우에는 answer을 return)

pow() 함수 사용법
pow(제곱할 수, 제곱횟수) = 제곱할 수 ^ 제곱횟수

삼항 연산자 사용법
조건식 ? 반환값 1 : 반환값 2
-> 조건식이 참(true)이면 반환값 1을, 거짓(false)이면 반환값2를 반환


풀이

#include <cmath>

using namespace std;

int solution(int a, int b) {
    int answer = 0, b_c = b, check = 0;
    
    while(b_c > 0) {
        b_c /= 10;
        check++;
    }
    answer = (a * pow(10, check)) + b;
    return answer >= 2 * a * b ? answer : 2 * a * b;
}
profile
Keep Recycling Your Dreams

0개의 댓글