목록분류 전체보기 (365)
공부해 볼 겸 개인 프로젝트를 시작해보려고 한다.멀티스레드 기반으로 클라이언트에게 파일을 전송해 주는 서버를 만들어 보려고 한다.더 나아가서 암호화 복호화를 통해 파일의 내용을 탈취할 수 없게 만드는 기능까지 넣어보려고 한다. 환경부터 세팅을 해주었다.먼저 우분투를 다운 받아준다. 그다음 vscode를 깔고 extension팩을 다운로드하여준다. gcc가 깔려있나 확인했는데 깔려있다.컴파일 및 빌드를 하려 하면 이런 오류가 나오는데 tasks 및 launch 파일을 생성해 주면 된다.근데 요즘은 자동으로 설정을 해주기 때문에 편했다. 빌드가 잘된다.
https://www.acmicpc.net/problem/9328 9328번: 열쇠 상근이는 1층 빌딩에 침입해 매우 중요한 문서를 훔쳐오려고 한다. 상근이가 가지고 있는 평면도에는 문서의 위치가 모두 나타나 있다. 빌딩의 문은 모두 잠겨있기 때문에, 문을 열려면 열쇠가 www.acmicpc.net 5 17 ***************** .............**$* *B*A*P*C**X*Y*.X. *y*x*a*p**$*$**$* ***************** cz 해당 입력을 예시로 과정을 본다. . . . . . . . . . . . . . . . . . . . . * * * * * * * * * * * * * * * * * . . . . . . . . . . . . . . . * * $ * ...
https://www.acmicpc.net/problem/2239 2239번: 스도쿠 스도쿠는 매우 간단한 숫자 퍼즐이다. 9×9 크기의 보드가 있을 때, 각 행과 각 열, 그리고 9개의 3×3 크기의 보드에 1부터 9까지의 숫자가 중복 없이 나타나도록 보드를 채우면 된다. 예를 들어 다 www.acmicpc.net 오랜만에 재밌게 푼 문제 스도쿠 빈칸을 주면 채워주면 된다. 파란색 값을 구한다고 하면 가로, 세로, 박스 안에서 겹치지 않는 숫자를 채워주어야 한다. 그럼 가능한 숫자는 여러 개이므로 이를 백트래킹으로 빈칸이 없는 스도쿠가 완성될 때까지 계속 돌려준다. #include #include #include using namespace std; vector sudoku; vector zero_po..
https://www.acmicpc.net/problem/11066 11066번: 파일 합치기 소설가인 김대전은 소설을 여러 장(chapter)으로 나누어 쓰는데, 각 장은 각각 다른 파일에 저장하곤 한다. 소설의 모든 장을 쓰고 나서는 각 장이 쓰여진 파일을 합쳐서 최종적으로 소설의 완성본 www.acmicpc.net 어려운 DP문제였다. 50 40 30 의 cost를 계산한다고 하면 (50 + 40) + (50 + 40 + 30) = 210 (40 + 30) + (50 + 40 + 30) = 190 해당 예시를 보면 꼭 전체합을 한번 더 더하는 모습을 볼 수 있다. 예시를 보면 40 30 30 50 a b c d 각 알파벳을 지정해 주며 a + b + c 라흐만 40, 30, 30을 합쳐을 때의 co..
https://www.acmicpc.net/problem/1520 1520번: 내리막 길 여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으 www.acmicpc.net DFS + 메모이제이션 DFS를 응용해서 중복된 길에 대한 데이터 처리 기법이다. 다음 이동할 지점이 이미 목적지에 도달할 수 있다는 데이터를 가지고 있으면 굳이 목적지까지 갈 필요가 없다. ex) 50 45 37 32 30 49 48 90 20 25 90 90 25 17 28 27 24 22 15 10 dp -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -..
https://www.acmicpc.net/problem/9252 9252번: LCS 2 LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net LCS문제이다. 기존 알고리즘대로 푼다. 행렬 DP를 만들어준다. ACAYKP CAPCAK A C A Y K P 0 0 0 0 0 0 0 C 0 0 1 1 1 1 1 A 0 1 1 2 2 2 2 P 0 1 1 2 2 2 3 C 0 1 2 2 2 2 3 A 0 1 2 3 3 3 3 K 0 1 2 3 3 4 4 이런 행렬표를 얻게 되고 LCS값은 4이다..
https://leetcode.com/problems/number-of-subarrays-that-match-a-pattern-ii/description/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문자열에서 패턴을 찾는 문제이다. 기존에 알고 있던 내용은 찾을 패턴 : AABA 문자열 : AABABAACA 가 있다고 할때 A A B A B A A C A..
https://www.acmicpc.net/problem/2098 2098번: 외판원 순회 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 16) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net 나에겐 어려운 문제였다. 계속 시간초과 나서 풀이를 확인했다. 시간초과를 해결하는게 핵심이었다. data = [] n = int(input()) def dfs(cur_node, visited): if visited == pow(2, n)-1: if data[cur_node][0] != 0: return data[cur_node][0] else: return f..