반응형
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;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.