본문 바로가기

Algorithm/자료구조

(C++) - LeetCode (easy) 1796. Second Largest Digit in a String

반응형

https://leetcode.com/problems/second-largest-digit-in-a-string/description/

set을 사용해본 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

digit이 나온 문자들을 저장할 set numSet을 선언한 후 s에 대해 for loop를 수행하며 문자별 digit들을 저장해줍니다.

📔 정답 출력 | 반환

1. digit이 1개밖에 없다면 정답은 -1입니다

2. set 자료구조는 오름차순으로 정렬되며 원소가 insert되므로 rbegin에서 iterator를 하나 증가시켜준 주소값을 반환해줍니다.


📕 Code

📔 C++

class Solution {
public:
    int secondHighest(string s) {
        set <int> numSet;
        for(auto c : s) {
            if(isdigit(c)) {
                numSet.insert(c-'0');
            }
        }
        if (numSet.size() < 2) {
            return -1;
        }
        
        auto it = numSet.rbegin();
        it++;
        return *it;
    }
};

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