본문 바로가기

운동하는 개발자

(181)
Beakjoon] K번째 수 (백준 1300 코테) - 탐색 🅰️문제주소 : https://www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net 🚩문제 🪡풀이 - 문제 그대로 2차원 배열을 만들고 정렬을 시키면 시간복잡도가 N^2으로 초과해버린다. - A[i][j] = i×j 배열에서 두 가지의 규칙을 찾아야 한다. 1) 해당배열은 k번째 값은 k의 값을 넘지 못한다. (3x3배열에서 마지막 인덱스의 값이 9이므로) 2) 한 행에서 '중앙값을 행으로 나눈 값' vs '열의 수' 둘 중 작은 수..
Beakjoon] 트리의 지름 구하기 (백준 1167 코테) - 탐색 🅰️문제주소 : https://www.acmicpc.net/problem/1167 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net 🚩문제 🪡풀이 - 가장 긴 두 점 사이의 거리를 구하는 방법을 알아야 하는데 이는 임의의 어떤 한 점에서 가장 먼 곳의 위치를 찾아낸 후 그 위치로부터 가장 멀리 있는 곳까지의 거리로 구할 수 있다. - map을 그릴때 vector 으로 거리값도 함께 저장하면서 그린다. - 방문여부 배열과, 누적 거리 배열을 만든다. - 임의의 위치에서 BFS를 시작하고 누적거리 ..
Beakjoon] 미로 탐색 (백준 2178 코테) - 탐색 🅰️문제주소 : https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 🚩문제 🪡풀이 - 최단경로를 구하는 문제로 BFS를 사용해서 도달한 깊이값을 사용하면 됨. - 상, 하, 좌, 우 이동이 가능하고 이 이동을 하기위한 값을 미리 저장해 둠. - 방문한 위치는 depth값을 기록하면서 해당 위치에 도달하기 위한 최솟값을 저장해 둠 ☕코드는 아래 숨김 더보기 #include #include #include #include static std::vector map; static std..
Beakjoon] DFS와 BFS (백준 1260 코테) - 탐색 🅰️문제주소 : https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 🚩문제 🪡풀이 - DFS와 BFS의 기본적인 구현. 탐색이 끊긴다던가 특정 depth의 값을 구하는 것이 아니므로 특별한 조건 없이 구현하면 된다. 주의할 점은 방문할 수 있는 정점이 여러개면 번호가 작은 것부터 방문하게 해야 한다는 것인데 이는 정렬을 통해 다른 조건을 줄 필요 없이 간단하게 해결된다. ☕코드는 아래 숨김 더보기 #includ..
UnhandledExceptionFilter() not work. 동작안함 (IDirect3D9) https://learn.microsoft.com/ko-kr/windows/win32/api/errhandlingapi/nf-errhandlingapi-unhandledexceptionfilter UnhandledExceptionFilter 함수(errhandlingapi.h) - Win32 apps 프로세스가 디버그되는 경우 처리되지 않은 예외를 디버거에 전달하는 애플리케이션 정의 함수입니다. learn.microsoft.com 위 함수가 내 PC에서 동작하지 않는 문제가 있었다. 분명 다른 테스트서버에서는 정상적으로 동작하였던 코드였고 수정된 내용도 없었다. 디버깅 중에는 원래 해당 함수가 적용되지 않기에 로그를 찍어가며 확인하는데 이상하게도 특정 로직 동작 이전까지는 정상적으로 작용했다. 그래서 범..
Linux(ubuntu) to Windows , Windows to Linux 파일 전송 (SCP) 나의 상황은 사설 아이피의 Windows 개발 PC와 공인 아이피의 리눅스 Linux 서버 간의 파일 교환이 필요한 상황이었다. 당연히 리눅스로는 공인아이피이기에 다양한 방법으로 전송이 가능하겠지만 내 피시로 다시 파일을 받아야 하는 경우엔 몇몇 방법으로는 불가능한 상황이었다. 때문에 찾아본 SCP 윈도우10이상부터는 디폴트로 설치되는 것 같았다. 사용법은 간단하다. 파일을 어디로 옮기고 싶든지 Windows에서 커맨드 창을 연다 (옮겨야 할 파일이 있는 경로에서 열면 더 편하다) 1. Windows to Ubuntu scp -p [ssh포트] [Windows파일경로] [Ubuntu계정]@[Ubuntu IP]:[Ubuntu파일경로] scp -P 3022 .\test.tar.gz user@222.111.2..
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] ..