320x100
https://leetcode.com/problems/second-largest-digit-in-a-string/
example |
Input: s = "dfa12321afd" Output: 2 Explanation: The digits that appear in s are [1, 2, 3]. The second largest digit is 2. |
Input: s = "abc1111" Output: -1 Explanation: The digits that appear in s are [1]. There is no second largest digit. |
주어진 문자열에서 숫자만 가지고와서 2번째로 큰 숫자를 리턴하는 간단한 문제다.
백신맞고 몸이 안좋아 약을 먹었더니 Medium을 풀 정신이 아니여서 Easy 하나 물고 마음의 위안을 삼는다.
class Solution {
public:
int secondHighest(string& s) {
int first_large = -1;
int second_large = -1;
char zero_ascii = '0';
for(char c : s) {
if (!std::isdigit(c)) {
continue;
}
int value = c-zero_ascii;
if (first_large < value) {
second_large = first_large;
first_large = value;
}
else if (first_large == value) {
}
else if (second_large < value) {
second_large = value;
}
}
return second_large;
}
};
vector<int> v에 숫자만 다 넣고 unique(v.begin(), v.end()); 돌린 뒤에 sort(v.begin(), v.end(), greater<int>) 실행하고
v[1]을 리턴해도 될거 같지만 그냥 변수로 풀어봤다.
빠르면 되었지 뭐..
320x100
'코딩테스트 준비 > leetcode' 카테고리의 다른 글
1775. Equal Sum Arrays With Minimum Number of Operations [Medium] (0) | 2021.06.14 |
---|---|
36. Valid Sudoku [Medium] (0) | 2021.06.13 |
101. Symmetric Tree [Easy] (0) | 2021.06.12 |
1753. Maximum Score From Removing Stones [Medium] (0) | 2021.06.12 |
112. Path Sum [Easy] (0) | 2021.06.09 |