2022년 2월 25일 금요일 - 역시 금요일이 최고지
오늘 올려볼 문제는 165번 Compare Version Numbers 이라는 문제이다.
사진을 클릭하면 해당 문제로 이동합니다.
오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.
아니 제약조건 잘못봐서 더 안좋게 품...
입력
사진에서도 볼 수 있듯이 String 2개가 입력으로 들어온다.
풀이 및 코드
주어진 String 들은 각각 버전을 나타내는 데 이를 비교하여 리턴하는 문제이다.
오늘은 처음부터 정답을 생각해냈다.
사실 별거없이 직관적으로 문제를 풀면된다.
다만 난 제약조건을 잘못봐서 BigInteger를 사용해서 풀었지만 Integer를 사용해서 풀어도 된다.
이제 코드를 봐보자!
import java.math.BigInteger;
class Solution {
public int compareVersion(String version1, String version2) {
String[] arr1 = version1.split("[.]");
String[] arr2 = version2.split("[.]");
BigInteger b1 = new BigInteger("0");
BigInteger b2 = new BigInteger("0");
for(int i = 0; i < (arr1.length > arr2.length ? arr1.length : arr2.length); i++)
{
if(i >= arr1.length)
{
b1 = BigInteger.valueOf(0);
}
else
{
b1 = new BigInteger(arr1[i]);
}
if(i >= arr2.length)
{
b2 = BigInteger.valueOf(0);
}
else
{
b2 = new BigInteger(arr2[i]);
}
if(b1.compareTo(b2) > 0)
{
return 1;
}
else if(b1.compareTo(b2) < 0)
{
return -1;
}
}
return 0;
}
}
제출 화면
오늘은 더 메모리를 적게 쓰고 풀 수 있었지만 제약 조건을 제대로 안읽어서 메모리를 더 쓴 문제다.
다음에는 제약조건을 제대로 읽어야겠다.
내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.
'LeetCode 문제 풀이' 카테고리의 다른 글
[LeetCode] 228번 문제를 풀어보았다. (ft. java) (0) | 2022.02.28 |
---|---|
[LeetCode] 662번 문제를 풀어보았다. (ft. java) (0) | 2022.02.27 |
[LeetCode] 148번 문제를 풀어보았다. (ft. java) (0) | 2022.02.24 |
[LeetCode] 133번 문제를 풀어보았다. (ft. java) (1) | 2022.02.23 |
[LeetCode] 171번 문제를 풀어보았다. (ft. java) (0) | 2022.02.22 |