본문 바로가기
반응형

tech documents/algorithm7

segmentation fault 2차원 배열을 선언해서 사용하려는데 100*100000의 2차원 배열을 선언하면 segmentation fault가 발생한다. 그럴때에는 stack 영역이 아닌 data 영역에서 선언해주어야 한다. 함수 내에서 선언하는 것은 stack 영역에 할당하게 된다. 반면 global이나 static으로 선언하는 경우는 data영역에 할당한다. 따라서 보통 전역변수로 선언해 주어야 segmentation fault가 발생하지 않는다. 아래는 전역변수로 선언하여 코드를 작성하는 경우이다. 2022. 2. 22.
다음 순열 서론 ​ ❔ 문제 ​ Leetcode 31, Next Permutation 문제이다. 아래는 leetcode의 링크이다. https://leetcode.com/problems/next-permutation/ A permutation of an array of integers is an arrangement of its members into a sequence or linear order. For example, for arr = [1,2,3], the following are considered permutations of arr: [1,2,3], [1,3,2], [3,1,2], [2,3,1]. The next permutation of an array of integers is the next lex.. 2022. 2. 5.
괄호를 추가하는 서로 다른 방법 서론 ❔ 문제 Leetcode 241, Different Ways to Add Parentheses 문제이다. 아래는 leetcode의 링크이다. https://leetcode.com/problems/different-ways-to-add-parentheses/ Given a string expression of numbers and operators, return all possible results from computing all the different possible ways to group numbers and operators. You may return the answer in any order. 숫자와 연산자로 이루어진 스트링 형식의 수식이 주어지면, 숫자와 연산자를 묶을 수 있는 모든 .. 2022. 1. 29.
최단거리계산, 모든 최단거리경로 구하기 서론 이틀 전, 가만히 멍때리다가 BFS 알고리즘으로 최단거리를 구하는 법에 대해서 다시 고민해보았다. BFS의 queue로 같은 depth 순으로 위치 배열을 탐색하며 배열의 값에 1씩 더해주는 방식으로 최단거리를 계산할 수 있다. 그러던 중, 어떻게 하면 최단거리인 모든 경로를 출력할 수 있을까? 하는 궁금증이 생겼고 BFS을 사용해서 코딩을 해봤다. 🤔고민 최단거리 계산하는 코드는 어렵지 않게 작성할 수 있었지만 두번째는 시간이 조금 걸렸다. 무엇보다 경로를 저장하기 위해서는 다차원 배열을 사용해야하는데, vector를 이용한 다차원배열은 내게 익숙하지 않아서 검색하는 시간이 오래걸렸다. vector* route[row][col]; for(int i = 0; iend(); j++){ printf(".. 2022. 1. 20.
복호화 방법 서론 ❔문제 Leetcode 91번, Decode Ways 문제이다. 아래는 leetcode의 링크이다. https://leetcode.com/problems/decode-ways/ A-Z 를 포함하는 메시지는 다음과 같이 대응되어 암호화 될 수 있다. 'A' -> "1" 'B' -> "2" ... 'Z' -> "26" 암호화 된 메시지는 위와 같은 매핑의 반대로 다시 복호화 될 수 있다.(여러 방법이 있을 수 있다.) 예를 들어 "11106"의 경우 아래와 같이 복호화 될 수 있다. "AAJF" with the grouping (1 1 10 6) "KJF" with the grouping (11 10 6) (11 1 06) 의 경우 06은 6과 다르기 때문에 .. 2022. 1. 20.
모든 가능한 괄호의 조합 찾기 서론 ❔문제 Leetcode 22번, Generate Parentheses 문제이다. 아래는 leetcode의 링크이다. https://leetcode.com/problems/generate-parentheses/ n 쌍의 괄호가 주어졌을때 잘 만들어진 모든 괄호들의 조합을 생성하는 함수를 작성하시오. 테스트 케이스는 다음과 같다. Input: n = 3 Output: ["((()))","(()())","(())()","()(())","()()()"] Input: n = 1 Output: ["()"] n의 범위는 아래와 같다. 1 2022. 1. 20.
이진트리의 비교 서론 leetcode easy 문제부터 풀고 있는 중이다. 그러다가 두 개의 binary tree가 똑같은지(문제 1) 그리고 좌우대칭인지 (문제 2)를 확인하여 리턴하는 문제를 풀게되었다. 푸는데는 막 오래 걸리진 않았지만, 그래도 템플릿을 기억해놓으면 좋을 것 같다. 코드 leetcode - TreeNode 기본적으로 leetcode 에서 제공하는 binary tree의 형식은 다음과 같다. struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode() : val(0), left(nullptr), right(nullptr) {} TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} Tr.. 2022. 1. 20.
반응형