[프로그래머스/C#/Lv. 0] 더 크게 합치기
2024. 7. 11. 09:52ㆍ공부
오늘의 문제는 '더 크게 합치기'
풀이가 어려운 문제는 아니지만 다른 사람의 풀이에서 좋은 코드가 있어 복습할 겸 포스트하려 한다.
[문제 설명]
연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
- 12 ⊕ 3 = 123
- 3 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.
단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다.
[제한사항]
- 1 ≤ a, b < 10,000
[입출력 예]
a | b | result |
9 | 91 | 991 |
89 | 8 | 898 |
[나의 풀이]
using System;
public class Solution {
public int solution(int a, int b) {
int answer = 0;
string str1 = a.ToString() + b.ToString();
string str2 = b.ToString() + a.ToString();
answer = (int.Parse(str1) >= int.Parse(str2)) ? int.Parse(str1) : int.Parse(str2);
return answer;
}
}
a와 b를 문자열로 변환하고 합친다음 다시 정수로 변환해 크기 비교를 해주었다.
여기서 평소에 쓰지 않던 '삼항 연산자'를 사용했다.
- 삼항 연산자: var tmp = {조건} ? {참(true)일 경우 return값} : {거짓(false)일 경우 return값}
[다른 사람의 풀이]
using System;
public class Solution {
public int solution(int a, int b)
{
int aNum = Int32.Parse($"{a}{b}");
int bNum = Int32.Parse($"{b}{a}");
return Math.Max(aNum, bNum);
}
}
풀이 과정은 문자열로 더하고 정수로 변환해 값을 비교하는 것이지만 문자열보간과 Math 함수를 사용해 굉장히 간결하게 풀어내셨다!
또 내가 사용한 int.Parse(string str)와 Int32.Parse(string str)이 어떤 차이인지 알아봐야겠다.
'공부' 카테고리의 다른 글
구글 애널리틱스(GA4) 용어 정리 (4) | 2024.09.24 |
---|---|
[프로그래머스/C#/Lv. 0] 두 수의 연산값 비교하기 (0) | 2024.07.11 |
[프로그래머스/C#/Lv. 0] 문자열 겹쳐쓰기 (1) | 2024.07.10 |
Unity UI: Ripple Effect (0) | 2024.05.21 |
[디자인 패턴]01. 디자인 패턴의 기초 MVC 패턴을 알아보자 (0) | 2024.04.01 |