반응형
https://leetcode.com/problems/slowest-key/description/
간단 구현 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
1. 정답 구조체 Answer에 가장 길게 눌린 문자 character와 눌린 시간 duration을 가진 ans를 선언해 keysPressed, releaseTimes의 0번째 값을 넣어줍니다.2. 정보가 입력된 길이 size를 선언 후 값을 적절히 저장합니다.
📔 풀이과정
size만큼 for loop를 수행합니다. 1. 현재 문자 curChar가 눌린 duration이 ans.duration 이상이라면 값을 갱신해줘야합니다. 1-1. 같은 duration이라면 더 큰 값의 문자를 ans.character에 저장합니다. 이외의 경우 현재 문자를 ans.character에 저장합니다. 1-2. 1-1과 상관없이 이상이라면 해당 duration을 갱신해 ans.duration에 저장합니다.
📔 정답 출력 | 반환
ans.character를 반환합니다.
📕 Code
📔 C++
struct Answer {
char character;
int duration;
};
class Solution {
public:
char slowestKey(vector<int>& releaseTimes, string keysPressed) {
Answer ans = {keysPressed[0], releaseTimes[0]};
int size = releaseTimes.size();
for(int i = 1; i < size; i++) {
int duration = releaseTimes[i] - releaseTimes[i-1];
char curChar = keysPressed[i];
if (ans.duration <= duration) {
if(ans.duration == duration) {
ans.character = max(ans.character, curChar);
} else {
ans.character = curChar;
}
ans.duration = duration;
}
}
return ans.character;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - LeetCode (easy) 1646. Get Maximum in Generated Array (1) | 2024.05.23 |
---|---|
(C++) - LeetCode (easy) 1636. Sort Array by Increasing Frequency (0) | 2024.05.17 |
(C++) - LeetCode (easy) 1619. Mean of Array After Removing Some Elements (0) | 2024.05.13 |
(C++) - LeetCode (easy) 1603. Design Parking System (0) | 2024.05.09 |
(C++) - LeetCode (easy) 1598. Crawler Log Folder (0) | 2024.05.08 |