본문 바로가기

전체 글

(1928)
선택 안됨 (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:..
(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: i..
(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을 더..
(C++) - LeetCode (easy) 1556. Thousand Separator https://leetcode.com/problems/thousand-separator/description/구현문제였습니다.📕 풀이방법📔 입력 및 초기화n의 문자열 형태 str과 정답변수 ans, stack st, 천의 자리를 확인할 cnt를 선언 후 적절히 초기화해줍니다.📔 풀이과정1. n이 1234일 때 n의 오른쪽부터 왼쪽으로 for lloop를 수행하며 다음을 진행합니다.  1-1. stack에 넣으면 stack에 [4,3,2,1] 순으로 원소가 저장되게 됩니다.  1-2. 이 때 cnt를 1씩 증가시키면서 3의 배수일 때마다 '.'을 하나씩 추가로 st에 push해주면 [4,3,2,.,1] 됩니다.2. while loop를 수행하면서 st에 top을 ans 뒤에 붙여주고 pop..
(C++) - LeetCode (easy) 1550. Three Consecutive Odds https://leetcode.com/problems/three-consecutive-odds/description/간단 구현 문제였습니다.📕 풀이방법📔 풀이과정1. arr.size() 2. arr의 원소를 순회하면서 3개의 연속된 원소가 홀 수라면 true를 아니면 false를 반환합니다.* 1번의 이유는 아래 2번이 수행되면서 3개의 연속된 원소를 비교시 arr의 index로 접근하게 되는데, 이 때 overflow가 나지 않기 위함입니다.📕 Code📔 C++class Solution {public: bool threeConsecutiveOdds(vector& arr) { if (arr.size() *더 나은 내용을 위한 지적, 조언은 언제나 환영합..
(C++) - LeetCode (easy) 1544. Make The String Great https://leetcode.com/problems/make-the-string-great/description/ stack을 이용해 해결한 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 stack st, 정답 변수 ans를 선언해줍니다. 📔 풀이과정 1. s의 원소를 수행하면서 다음을 확인해줍니다. 1-1. st에 원소가 있으면 st의 top과 s[i]가 같은지를 확인해 한쪽이 대문자, 다른 한 쪽이 소문자라면 pop 해줍니다. 1-2. 아닌 경우 인접한 부분이 good하므로 st에 push합니다.2. while loop흫 수행하면서 ans에 st의 원소를 넣어줍니다. 이 때 순서에 주의합니다. stack이므로 거꾸로 저장되어 있어 top을 ans의 앞에 문자열을 붙여주면 됩니다. 📔 정답 출력 | ..
(Ubuntu 22) - Ubuntu 잘못 설치해 swap size가 적을 때 멈춤 현상 해결 🍳머리말아 개발할 때 computer 자꾸 멈춰요📕설명📔 Ubuntu에서 RAM 크기 확인하기개발을 하다가 새 desktop임에도 계속 멈춰서 미동도 하지 않았습니다. 이것저것 하다가 문득 애초에 깔때부터 무심코 넘겼던 option들이 생각나면서 swap size를 작게 설정했음을 기억해 해결했습니다.  📑 free -h사용 가능한 RAM과 사용 중인 RAM을 표시하는 명령어 입니다. -h option으로 MB 또는 GB가 보이게 가독성을 챙겨줍니다. 📔 Java 개발을 위한 적정 swap 영역 크기Swap 영역은 system의 RAM이 부족할 때 hard drive의 일부를 가상 memory로 사용해 system memory를 보충하는 역할을 합니다. 주로 RAM크기에 따라..