본문 바로가기

Algorithm/Implementation

(750)
(C++) - LeetCode (easy) 1646. Get Maximum in Generated Array https://leetcode.com/problems/get-maximum-in-generated-array/description/간단 구현 문제였습니다.📕 풀이방법📔 입력 및 초기화정답 변수 ans, vector nums를 선언 후 각각 0, {0,1}로 초기화 해줍니다.📔 풀이과정* n 2 ~ n까지 for loop를 수행하며 nums에 들어갈 원소값을 구해 지역변수 nextNum에 저장후 nums에 push_back해줍니다. 이 때 ans, nextNum과 비교해 최댓값을 갱신해줍니다.📔 정답 출력 | 반환ans를 반환합니다.📕 Code📔 C++class Solution {public: int getMaximumGenerated(int n) { int ans = 0; ..
(C++) - LeetCode (easy) 1636. Sort Array by Increasing Frequency https://leetcode.com/problems/sort-array-by-increasing-frequency/description/📕 풀이방법📔 입력 및 초기화원소와 빈도수를 저장할 map freqMap을 static 선언 후 frequencySort함수 호출시마다 clear해주고 nums의 원소별 빈도수를 저장합니다.📔 풀이과정빈도수에 대한 오름차순, 빈도수가 같다면 숫자가 큰 순으로 내림차순 정렬을 구현해 sort함수의 3번째 인자로 넘겨 정렬 해줍니다.📔 정답 출력 | 반환정렬된 nums를 반환합니다.📕 Code📔 C++class Solution { static map freqMap;public: static bool cmp(int a, int b) { if..
(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) 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) 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) 1572. Matrix Diagonal Sum https://leetcode.com/problems/matrix-diagonal-sum/description/index를 다뤄 정답을 구해보는 문제였습니다.📕 풀이방법📔 입력 및 초기화1. 정사각형 matrix의 한 변 sideLength를 선언 후 mat.size()값을 저장합니다.2. 정답 변수 sum을 선언 후 0으로 초기화해줍니다.📔 풀이과정1. mat의 원소를 ↘ 방향으로 순회하며 원소를 sum에 더해줍니다. 단, 홀수라면 중복으로 값이 더해지므로 더하지 않고 건너뛰어 줍니다.2. mat의 원소를 ↗ 방향으로 순회하며 원소를 sum에 더해줍니다.📔 정답 출력 | 반환sum을 반환합니다.📕 Code📔 C++class Solution {public: int diagonalSum(v..
(C++) - LeetCode (easy) 1560. Most Visited Sector in a Circular Track https://leetcode.com/problems/most-visited-sector-in-a-circular-track/description/순환을 구현한 문제였습니다.📕 풀이방법📔 입력 및 초기화정답 vector visited, sector별 방문자를 저장할 vector visitedPerSector를 선언 후 round 0의 시작 sector를 방문처리합니다.📔 풀이과정1. 각 round별 loop를 수행합니다.2. start는 round[i-1], end는 round[i]가 되며 내부에서 while loop를 수행합니다.   2-1. end가 아닐때까지 start를 증가시켜줍니다.   2-2. 이 때 한 바퀴 돌았다는 것을 처리하기 위해 나머지 연산을 사용해 그 결과에 1을 더하는 방식으..