본문 바로가기

Algorithm/Implementation

(C++) - LeetCode (easy) 1903. Largest Odd Number in String

반응형

https://leetcode.com/problems/largest-odd-number-in-string/description/

📕 풀이방법

📔 입력 및 초기화

정답 변수 ans와 홀수가 나온 num의 index oddIdx를 선언해줍니다.

📔 풀이과정

큰 홀수는 가장 마지막에 나온 홀수를 기준으로 자른 부분 문자열입니다. 다음 두 가지로 나눠 생각해봅니다. num은 짝수 문자열로 이뤄진 집합과 홀수 문자열로 이뤄진 집합으로 나눠 집니다.

1. 짝수집합-홀수집합 : 두 문자열들의 집합을 합친 홀수가 가장 깁니다.

2. 홀수집합-짝수집합 : 홀수집합이 가장 깁니다.

이 두 가지를 합해 가장 마지막에 나온 홀수의 index를 가져와 이를 기준으로 부분 문자열을 자르게 되면 정답이 됩니다.

📔 정답 출력 | 반환

ans를 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    string largestOddNumber(string num) {
        string ans = "";
        int oddIdx = -1;
        for(int i = 0; i < num.size(); i++) {
            if ((num[i] - '0') % 2) oddIdx = i;
        }
        ans = num.substr(0, oddIdx+1);
        return ans;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.