본문 바로가기

Algorithm/Implementation

(750)
(C++) - LeetCode (easy) 1903. Largest Odd Number in String https://leetcode.com/problems/largest-odd-number-in-string/description/📕 풀이방법📔 입력 및 초기화정답 변수 ans와 홀수가 나온 num의 index oddIdx를 선언해줍니다.📔 풀이과정큰 홀수는 가장 마지막에 나온 홀수를 기준으로 자른 부분 문자열입니다. 다음 두 가지로 나눠 생각해봅니다. num은 짝수 문자열로 이뤄진 집합과 홀수 문자열로 이뤄진 집합으로 나눠 집니다.1. 짝수집합-홀수집합 : 두 문자열들의 집합을 합친 홀수가 가장 깁니다.2. 홀수집합-짝수집합 : 홀수집합이 가장 깁니다.이 두 가지를 합해 가장 마지막에 나온 홀수의 index를 가져와 이를 기준으로 부분 문자열을 자르게 되면 정답이 됩니다.📔 정답 출력 | 반환ans..
(C++) - LeetCode (easy) 1897. Redistribute Characters to Make All Strings Equal https://leetcode.com/problems/redistribute-characters-to-make-all-strings-equal/description/📕 풀이방법📔 입력 및 초기화각 words의 모든 aphabat의 빈도수를 각각 key, value로 저장할 alphaMap을 선언 후 값을 적절히 저장해줍니다.📔 풀이과정alphaMap에 대해 loop를 수행하며 다음을 진행합니다.1. 각 iterator의 second값이 빈도수이므로 words개수로 나누어 떨어지지 않는다면 false를 반환합니다.2. for loop탈출 후 true를 반환합니다.📕 Code📔 C++class Solution {public: bool makeEqual(vector& words) { ..
(C++) - LeetCode (easy) 1886. Determine Whether Matrix Can Be Obtained By Rotation https://leetcode.com/problems/determine-whether-matrix-can-be-obtained-by-rotation/description/구현 문제였습니다.📕 풀이방법📔 풀이과정다음을 4번 수행합니다.1. 4번 90도로 돌려 target과 맞는지 여부를 확인하는 isSame을 수행합니다. 같다면 true를 반환합니다.2. 이후 시계방향으로 90도 회전시킨 결과를 반환하는 rotate함수를 수행해줍니다.📔 정답 출력 | 반환for loop 탈출 후 target과 같게 만들 수 없으므로 false를 반환합니다.📕 Code📔 C++class Solution {public: vector> rotate(vector> &mat) { int r = mat.s..
(C++) - LeetCode (easy) 1880. Check if Word Equals Summation of Two Words https://leetcode.com/problems/check-if-word-equals-summation-of-two-words/description/간단 구현 문제였습니다.📕 풀이방법📔 풀이과정alphabat을 숫자형태의 문자열로 변환하고 그 값을 int형으로 변환해 반환하는 함수 getNum을 통해 firstNum, secondNum, targetNum에 각자 저장합니다.📔 정답 출력 | 반환firstNum + secondNum이 targetNum인지 여부를 반환합니다.📕 Code📔 C++class Solution {public: int getNum(string word) { string numStr; for(auto w : word) { ..
(C++) - LeetCode (easy) 1848. Minimum Distance to the Target Element https://leetcode.com/problems/minimum-distance-to-the-target-element/description/간단 구현 문제였습니다.📕 풀이방법📔 입력 및 초기화최소 거리 minDistance를 선언후 최댓값(약 10억)으로 초기화해줍니다.📔 풀이과정nums의 원소를 순회하며 target과 같은 원소가 있다면 minDistance값을 abs(현 index - start)중 최솟값으로 갱신해줍니다.📔 정답 출력 | 반환minDistance를 반환합니다.📕 Code📔 C++class Solution {public: int getMinDistance(vector& nums, int target, int start) { int minDistance..
(C++) - LeetCode (easy) 1844. Replace All Digits with Characters https://leetcode.com/problems/replace-all-digits-with-characters/간단 구현 문제였습니다.📕 풀이방법📔 입력 및 초기화이전 문자 prev를 선언 후 s[0]값을 저장합니다.📔 풀이과정1. 1번째부터 s의 원소를 순회합니다.1-1. 현재 확인 문자가 숫자라면 현재 문자를 prev + 현재 문자 해줍니다. 이 때 현재 문자는 char형이므로 int형으로 변환해 더해줍니다1-2. prev값을 현재 확인 문자로 갱신합니다.📔 정답 출력 | 반환치환된 문자열 s를 반환합니다.📕 Code📔 C++class Solution {public: string replaceDigits(string s) { char prev = s[0]; ..
(C++) - LeetCode (easy) 1837. Sum of Digits in Base K https://leetcode.com/problems/sum-of-digits-in-base-k/description/📕 풀이방법📔 입력 및 초기화1. k진수로 변환된 뒤집어진 문자열 bin을 선언해 줍니다.2. 정답 변수 sum을 선언 후 0으로 초기화해줍니다.📔 풀이과정1. n이 양수인 동안 다음을 진행합니다.1-1. n을 k로 나눈 나머지를 문자열로 변환해 bin 뒤에 붙여줍니다.1-2. n을 k로 나눠줍니다. 2. bin의 원소를 순회하며 sum에 bin을 숫자로 바꾼 값을 더해줍니다.📔 정답 출력 | 반환sum을 반환합니다.📕 Code📔 C++class Solution {public: int sumBase(int n, int k) { string bin = ""; ..
(C++) - LeetCode (easy) 1827. Minimum Operations to Make the Array Increasing https://leetcode.com/problems/minimum-operations-to-make-the-array-increasing/description/간단 구현 문제였습니다.📕 풀이방법📔 입력 및 초기화1. 증가시킬 횟수 operation을 선언 후 0으로 초기화해줍니다.2. 수를 비교할 변수 pivot을 선언 후 nums[0]값으로 초기화해줍니다.📔 풀이과정nums의 원소를 순회하며 다음을 진행합니다.1. 현 pivot값이 현 원소 이상인 경우 : operation은 pivot + 1 - 현 원소값 만큼 수행해야하므로 해당 값을 갱신해줍니다. 또한 pivot은 이제 pivot + 1값을 가지도록 재할당합니다.2. 이외의 경우 : pivot값은 현 원소값으로 갱신합니다.📔 정답 출력 |..