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

JiEun·2023년 5월 14일
0

코테/코플릿

목록 보기
15/56
post-thumbnail

두 수의 연산값 비교하기

문제 설명

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

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

입출력 예

abresult
291364
912912

입출력 예 설명

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

💻 내가 작성한 코드

function solution(a, b) {
   let num1 = Number(`${a}${b}`)
   let num2 = 2 * (a * b)
   
   return num1 > num2 ? num1 : num2
}

이번엔 조건이 복잡하지 않아
if문 대신 삼항연산자를 사용했다.

확실히 코드를 많이 보고 정리하면서 기억에 남으니
다음에 작성할 때 코드를 간결성 있고 깔끔하게 작성하는게 조금은 생긴거 같다.

💻 다른 사람이 작성한 코드

function solution(a, b) {
    let num1 = parseInt(a+""+b+"");
    let num2 = 2*a*b;
    return num1 > num2 ? num1 : num2;
}

parseInt(a+""+b+"")이부분이 독특해서 가지고 와봤다.
a+""이런 식으로 작성하게 되면 둘 다 다른 타입이여도 좌항에 작성한 ""를 따라 문자열로 반환해 준다.

function solution(a, b) {
  const answerA = Number(a.toString() + b.toString());
  const answerB = 2 * a * b;
  return answerA > answerB ? answerA : answerB;
}

이분은 toString를 사용하셨다.

Number(String(a) + String(b))이런 방법도 있다.

아마 이번 문제는 a ⊕ b 이부분을 어떻게 표현할건가,
조건을 어떻게 작성할 것인지 싶다.


✏️ 마치며

숫자를 문자열로 변환하는 방법에서
나는 템플릿리터럴이나 String()메서드를 이용해 변경하는 방법을 자주 사용하는거 같다.

이번 기회를 통해 여러 방법으로 반환하는 방법을 알게 되었다.

근데 2 * a * b 이부분은 내가 작성한 2 * (a * b) 와 별 차이가 없난 싶으면서도 어떤 걸 먼저 계산해 줄 것인지 우선수위를 주어도 괜찮다 싶다.

또한, 코드의 띄어쓰기도 중요하다고 생각한다.
띄어쓰기 있고 없고로 가독성의 차이도 느껴진다.
확실히 띄어쓰기를하니 읽기도 편하다. 이건 vs code프로그램에서 단축키가 있어 그걸 하면 되나 그게 아니면 띄어쓰기를 신경써도 좋다고 생각한다.

profile
💻 프론트엔드를 목표로 성장 중! (알아봤던 내용 등을 정리하기)

0개의 댓글