본문 바로가기

전체 글

(1940)
(C++) - LeetCode (easy) 1588. Sum of All Odd Length Subarrays https://leetcode.com/problems/sum-of-all-odd-length-subarrays/description/전수조사 문제였습니다.📕 풀이방법📔 입력 및 초기화정답 변수 ans를 선언 후 0으로 초기화해줍니다.📔 풀이과정1. 1, 3, 5.. 순으로 loop를 수행하며 홀수개의 배열 길이 len에 대해 subarray의 범위를 구해줍니다.2. subarray의 원소 합을 구해 sum에 누적해 더해줍니다.3. ans에 sum값을 더해줍니다.📔 정답 출력 | 반환ans를 반환합니다.📕 Code📔 C++class Solution {public: int sumOddLengthSubarrays(vector& arr) { int ans = 0; for..
(SQL) - LeetCode (easy) 1587. Bank Account Summary II https://leetcode.com/problems/bank-account-summary-ii/description/join, group by를 사용해본 문제였습니다.📕 풀이방법📔 풀이과정users와 transactions를 join한 후 users name과 transactions amount총합을 구해줍니다. 총합을 구하기 위해 sum 함수를 사용해야 하므로 account, name에 대해 group by를 해줍니다.📕 Code📔 ANSI SQLselect u.name, sum(t.amount) as balance from users ujoin transactions t on u.account = t.accountgroup by t.account, u.namehaving sum(t.amoun..
(C++) - LeetCode (easy) 1582. Special Positions in a Binary Matrix https://leetcode.com/problems/special-positions-in-a-binary-matrix/description/전수조사 문제였습니다.📕 풀이방법📔 입력 및 초기화행 row, 열 col, 정답 변수 ans, 어떤 행의 1이 나온 개수 rowCount, 열이 나온 개수 colCount를 선언 후 적절한 값으로 초기화합니다.📔 풀이과정1. mat의 원소를 순회하면서 rowCount, colCount값을 누적해 더해줍니다.2. 다시 mat을 순회하면서 어떤 행 i, 열 j값이 1이면서 그 행의 rowCount가 1이며 열의 colCount가 1이라면 special한 값이므로 ans를 1씩 더해줍니다.📔 정답 출력 | 반환ans를 반환합니다.📕 Code📔 C++class ..
(SQL) - LeetCode (easy) 1581. Customer Who Visited but Did Not Make Any Transactions https://leetcode.com/problems/customer-who-visited-but-did-not-make-any-transactions/description/join을 사용해본 문제였습니다.📕 풀이방법📔 풀이과정visit_id로 visits와 transactions table을 join한 후 customer_id로 goup by햐 transaction_id가 null인 column의 visit_id를 count해 준 후 customer_id와 함께 select합니다.📕 Code📔 ANSI SQLselect v.customer_id, count(v.visit_id) as count_no_transfrom visits vleft join transactions t on v.visit_..
(C++) - LeetCode (easy) 1576. Replace All ?'s to Avoid Consecutive Repeating Characters https://leetcode.com/problems/replace-all-s-to-avoid-consecutive-repeating-characters/description/간단 문자열 다루는 문제였습니다.📕 풀이방법📔 풀이과정s의 원소에 대해 loop를 수행합니다.1. 일반 alphabat이면 continue합니다.2. '?'라면 'a'부터 'z'까지 loop를 수행하며 다음을 진행합니다.  2-1. 왼쪽 인접 alphabat이나 오른쪽 인접 alphabat이 같다면 continue합니다.  2-2. 인접 원소 중 겹치지 않는 alphabat을 찾아 s[i]를 교체해줍니다. 📔 정답 출력 | 반환s를 반환합니다.📕 Code📔 C++class Solution {public: string ..
(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) 1566. Detect Pattern of Length M Repeated K or More Times https://leetcode.com/problems/detect-pattern-of-length-m-repeated-k-or-more-times/description/전수조사 문제였습니다.📕 풀이방법📔 입력 및 초기화연속된 pattern 개수 patternCount 선언 후 0으로 초기화해줍니다.📔 풀이과정시작점 start부터 arr.size() - 1까지 loop를 수행하며 다음을 진행합니다. 1. start ~ m-1까지 구간을 한 pattern으로 정하고 m만큼 건너뛰면서 for loop를 수행해 매 start+m+i ~ start+m*2-1 + i 구간별 pattern이 맞는지 확인하는 isPattern함수를 수행합니다.2. pattern이 맞으면 patternCount를 1씩 증가시켜줍니..
(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을 더하는 방식으..