본문 바로가기

분류 전체보기

(1940)
(C++) - LeetCode (easy) 1629. Slowest Key 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..
(C++) - LeetCode (easy) 1624. Largest Substring Between Two Equal Characters https://leetcode.com/problems/largest-substring-between-two-equal-characters/📕 풀이방법📔 입력 및 초기화1. alphabat별 index를 저장할 map 변수 alphaIndexMap을 선언해 줍니다.2. 정답 변수 ans를 선언 후 -1로 초기화합니다.📔 풀이과정s에 대해 for loop를 수행합니다.1. 한 번이라도 나온 적 있는 alphabat이라면 두 문자의 거리는 i - 해당index - 1이므로 ans와 거리 값 중 최댓값을 저장해줍니다.2. 한 번도 나온 적 없다면 최초의 alphabat의 index를 저장해줍니다.📔 정답 출력 | 반환ans를 반환합니다.📕 Code📔 C++class Solution {public: ..
(C++) - LeetCode (easy) 1619. Mean of Array After Removing Some Elements https://leetcode.com/problems/mean-of-array-after-removing-some-elements/description/📕 풀이방법📔 입력 및 초기화1. 오름차순으로 arr를 정렬해줍니다.2. arr에서 5%에 해당하는 값을 removeCnt에 저장해줍니다.3. 정답변수 avg를 선언 후 0으로 초기화해줍니다.📔 풀이과정arr의 원소를 순회하며 removeCnt ~ arr.size()-removeCnt-1까지 loop를 수행하며 arr의 원소를 avg에 더해줍니다.📔 정답 출력 | 반환removeCnt * 2만큼의 수를 제했으므로 avg에서 arr크기 - (removeCnt * 2) 값으로 나눠 평균을 반환합니다.📕 Code📔 C++class Solution {..
(C++) - LeetCode (easy) 1614. Maximum Nesting Depth of the Parentheses https://leetcode.com/problems/maximum-nesting-depth-of-the-parentheses/description/stack을 이용한 문제였습니다.📕 풀이방법📔 입력 및 초기화정답 변수 depth와 stack st를 선언 후 적절히 초기화해줍니다.📔 풀이과정( 부터 )까지는 하나의 depth 범위라고 할 수 있습니다. 따라서 (인 경우 stack에 넣고 )인 경우 stack에 남아있는 열린 괄호 (의 개수가 현재 범위의 depth가 됩니다.1. s의 문자에 대해 for loop를 수행합니다.  1-1. 닫힌 괄호 )라면 depth와 stack의 size를 비교해 더 큰 값을 저장해줍니다. 이후 계산이 완료되었으므로 stack에서 (를 pop해줍니다.  1-2. 열린..
(C++) - LeetCode (easy) 1608. Special Array With X Elements Greater Than or Equal X https://leetcode.com/problems/special-array-with-x-elements-greater-than-or-equal-x/description/전수 조사 문제였습니다.📕 풀이방법📔 입력 및 초기화정답 변수 ans 선언 후 -1로 초기화해줍니다.📔 풀이과정nums 원소의 최댓값이 1000이므로 1. 1 ~ 1000범위안에 for loop를 수행합니다.  1-1. nums의 원소를 순회하며 현재 값 num이상인 것들의 개수를 지역변수 cnt에 저장합니다.  1-2. num과 cnt값이 같다면 정답이므로 ans에 num값을 저장후 break합니다.2. ans를 반환합니다.📕 Code📔 C++class Solution {public: int specialArray(ve..
(C++) - LeetCode (easy) 1603. Design Parking System https://leetcode.com/problems/design-parking-system/description/간단 구현 문제였습니다.📕 풀이방법📔 입력 및 초기화instance 생성자 시 carPerSize를 resize해주고 가능한 공간을 size별로 초기화해줍니다.📔 풀이과정catType별 가용공간을 carPerSize에서 찾아 주차 가능 여부를 판단합니다.1. 해당 type에 주차된다면 가용공간은 carPerSize[carType] - 1 입니다. 해당 수가 음수라면 주차할 수 없으니 false를 반환합니다.2. carPerSize[carType]--해주고 차 주차가 가능하니 true를 반환합니다.📕 Code📔 C++class ParkingSystem {public: vector..
(C++) - LeetCode (easy) 1598. Crawler Log Folder https://leetcode.com/problems/crawler-log-folder/description/간단 구현 문제였습니다.📕 풀이방법📔 입력 및 초기화정답 변수 ans선언 후 0으로 초기화해줍니다.📔 풀이과정logs의 원소를 순회하며 다음 경우에 따라 ans를 조정합니다.1. ../인 경우: ans가 main경로가 아닌경우 parent로 이동하므로 1빼줍니다.2. ./인 경우: 자기 자신으로 돌아가므로 아무것도 하지않고 continue합니다.3. 이외의 경우: 하위 directory로 이동하므로 ans를 1씩 더해줍니다.📔 정답 출력 | 반환ans를 반환합니다.📕 Code📔 C++class Solution {public: int minOperations(vector& logs)..
(C++) - LeetCode (easy) 1592. Rearrange Spaces Between Words https://leetcode.com/problems/rearrange-spaces-between-words/description/문자열을 다루는 문제였습니다.📕 풀이방법📔 입력 및 초기화1. 전체 공백 개수 totalSpace를 선언 후 text의 공백 개수를 세줍니다.2. text를 공백으로 구분해 split해서 정확히 단어들의 vector를 반환하는 split함수를 구현해 그 결과를 splited에 저장합니다.3. 단어개수 wordCount 선언 후 값을 저장해줍니다.4. 단어개수가 1개라면 필요한 공백은 0이며 단어개수가 2개인 것 부터 단어 사이에 공백을 균등배분 해줘야 합니다. 균등배분할 공백 개수 spaceBetweenWords선언 후 값을 저장합니다.5. 균등 배분 후 남은 공백 개수 ..