운동하는 개발자 (191) 썸네일형 리스트형 Visual studio Stack overflow (Stack Reserve Size) 타 팀의 요구하상으로 간단한 툴을 만들어서 전달해 주려는데 특정 함수 진입 시 Stack overflow가 나면서 프로그램이 종료되었다. 그동안 경험에 의해서는 보통 호출하는 쪽에서 정리안된 메모리가 충돌한다던가 하는 문제였었기에 호출하는 쪽만 죽어라 찾아봤는데 아무리 봐도 원인을 찾을 수 없었다. 그래서 혹시나 싶어 호출 되는 함수에서 특정 기능들을 하나씩 지워가며 테스트해본 결과 char 배열의 선언을 지우니 정상작동했다. ?????????? GPT에서도 해당 코드는 문제가 없다고 하는데.. 찾아보니 visual studio에서 제공하는 stack의 크기는 디폴트로 1MB였던것이다 아래 예시코드처럼 작성하게되면 해당 에러가 발생하게 된다 이 설정은 프로젝트 옵션에서 Linker-> All Option.. Beakjoon] 연결 요소의 개수 (백준 11724 코테) - 탐색 문제주소 : https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어 www.acmicpc.net 문제 풀이 - 기본적인 DFS 문제로 그래프를 그리고 재귀함수로 풀어내면 됨 코드는 아래 숨김 더보기 #include #include std::vector graph_map; std::vector visited; void DFS(int v) { if (visited[v] == true) return; visited[v] .. Beakjoon] 수 정렬하기 3 (백준 10989 코테) - 정렬 문제주소 : https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 풀이 - O(nlogn)으로도 풀 수 없는 시간복잡도의 수의 개수를 가지고 있다(10,000,000) c++의 sort로는 nlogn의 속도의 시간복잡도기에 계수정렬 O(kn)을 통해 풀어야 한다 코드는 아래 숨김 더보기 #include #include int main() { std::ios::sync_with_stdio(false); std::cin.tie(NULL); std::cout.tie(N.. Beakjoon] 버블 소트 2 (백준 1517코테) - 정렬 문제주소 : https://www.acmicpc.net/problem/1517 1517번: 버블 소트 첫째 줄에 N(1 ≤ N ≤ 500,000)이 주어진다. 다음 줄에는 N개의 정수로 A[1], A[2], …, A[N]이 주어진다. 각각의 A[i]는 0 ≤ |A[i]| ≤ 1,000,000,000의 범위에 들어있다. www.acmicpc.net 문제 풀이 문제 그대로 버블정렬로 카운트는 가능하지만 O(n^2)의 경우 시간복잡도에서 실패하게 된다. O(nlogn)의 시간복잡도로 문제를 풀어야 하는데 핵심 이론은 병합 정렬을 사용하되 병합정렬 시 뒤쪽 데이터가 앞으로 이동하는 경우는 이동한 칸만큼 swap이 일어났다고 볼 수 있다는 것이다. (이미 앞쪽데이터는 스왑에 의해 자동으로 뒤로 밀려나기에 카운트에.. Git에서 WinMerge로 difftool 명령어 사용하기 과거 Winmerge를 사용해서 소스코드의 변화나 텍스트 문서의 비교를 하곤 했었다. Git설치 시 기본적인 diff명령어로는 너무 보기도 불편했고 수정은 더 불편했다. 찾아보니 winmerge를 사용해서 git difftool 명령어가 가능하다고 하였고 적용하였더니 너무 편해졌다. 그럼 설치방법! (Git은 이미 설치된 것으로 가정) 1. Winmerge 설치 https://winmerge.org/downloads/?lang=ko 위 공식홈피 링크에서 다운로드받아 설치한다 2. ".gitconfig" 파일 수정 이 파일은 git설치시 C:\User\[사용자명] 아래에 숨김파일로 존재한다 만약 파일이 없다면 Git 설치 후 아래 최초 설정을 하지 않은 경우이다 위 설정을 해주면 .gitconfig 파일이.. Delphi 2010 Indy 업그레이드 (재설치) 회사에서 Delphi 2010 버전을 사용하고 있는데 이는 설치하면 과거버전의 Indy가 설치되어 있어서 특정 기능들을 사용할 수 없다. 그래서 최신 Indy로 교체시켜줘야 한다 1. 최신 Indy 다운로드 https://www.indyproject.org/ 여기서 다운로드 가능하며 현재는 github로 연동해놨다 (https://github.com/IndySockets/Indy) GitHub - IndySockets/Indy: Indy - Internet Direct Indy - Internet Direct. Contribute to IndySockets/Indy development by creating an account on GitHub. github.com 2. 기존 Indy 삭제 1) Delp.. Beakjoon] 절댓값 힙 구현하기 (백준 11286 코테) = 우선순위 문제주소 : https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 풀이 : 연산의 개수때문에 O(n^2의 연산속도의 알고리즘으로 해결하면 안된다. O(nlogn) 시간복잡도의 알고리즘으로 풀어야 하며 값을 입력받으면서 바로바로 조건에 맞게 정렬시켜야 한다. 우선순위 큐를 이용하되 순서의 조건이 까다롭기에 조건을 직접 알려줘야한다. 코드는 아래 숨김 더보기 #include #include #include struct MyQueue.. 실무자가 경험한 코딩테스트(알고리즘) 책 추천 + 스토리.. 제법 오래전 사회 초년생쯔음 시절 코딩테스트란 것을 전혀 모르던 때 이스트소프트에 서류합격하여 코딩테스트에 암것도 모르고 들어갔다가 맨붕한 경험이 있었다. 결국 코테가 없는 곳으로 이직하였었으나 코딩테스트는 꼭 이직의 준비 뿐만아니라 생각하는 사고력을 키운다는 점에서 공부해야겠다고 생각했었고 약 5년 전쯤 회사 사수와 함께 해커랭크를 풀었었다. 일주일간 3~4문제를 풀어오고 어떻게 풀었는지 비교해는 식으로 가볍게 스터디 식으로 진행했었는데 문제는 해커랭크가 모두 영어란 것이다. 영어를 잘 읽는 사수에 비해 영어에 약한 나는 문제를 읽고 이해하는 거부터가 너무 시간을 소모하고 지치게 하였다. 그리고 공부없이 무작정 풀다 보니 문제를 어떻게 접근해야 하는지, 내가 왜 틀렸는지 알 수 없었기에 난이도가 오르면.. 이전 1 2 3 4 5 6 7 8 ··· 24 다음