목록생활 (730)
No Rules Rules
최근 담당하는 과제에서는 VS2022을 이용해서 개발하고 있습니다. 탑재되는 장비에는 리눅스 계열 OS가 올라가 있구요. 이전 개발 중 가장 불편했던 점이 바로 디버깅이었는데, 이러한 부분을 해소하고자 시작한 시도였습니다. 최근 업체에서 만들어주신 라이브러리를 사용할 일이 있었는데요. 기존에 제가 링킹해서 사용하던 라이브러리는 동적 라이브러리(.so) 였고 업체로부터 전달받은 라이브러리는 정적 라이브러리(.a) 였습니다. 따라서 리눅스 머신간 컴파일을 할때 정적 라이브러리와 동적 라이브러리는 VS2022에서 어떻게 설정해야 하는지 정리하여 남기려고 합니다. VS2022에 라이브러리 링킹하기 (공통) 라이브러리의 헤더 경로 추가 정적 라이브러리 또는 동적 라이브러리에서 제공되는 함수를 사용하기 위해 우리는..
인간-컴퓨터 상호작용 https://www.acmicpc.net/problem/16139 16139번: 인간-컴퓨터 상호작용 첫 줄에 문자열 $S$가 주어진다. 문자열의 길이는 $200,000$자 이하이며 알파벳 소문자로만 구성되었다. 두 번째 줄에는 질문의 수 $q$가 주어지며, 문제의 수는 $1\leq q\leq 200,000$을 만족한다. 세 번째 www.acmicpc.net // woohyeon.kim // kim519620.tistory.com #include #include #include using namespace std; int dp[26][200002]; int main() { ios::sync_with_stdio(false), cin.tie(NULL); memset(dp, 0, siz..
수열 https://www.acmicpc.net/problem/2559 2559번: 수열 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 www.acmicpc.net // woohyeon.kim // kim519620.tistory.com #include using namespace std; int main() { ios::sync_with_stdio(false), cin.tie(NULL); register int N, K, dp[100002] = { 0 }, ans = -static_cast(1e9); register short arr[10..
구간 합 구하기 4 https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net // woohyeon.kim // https://www.acmicpc.net/problem/11659 #include using namespace std; int main() { ios::sync_with_stdio(false), cin.tie(NULL); register long long N, M, dp[100001] = { 0 }; cin >> N >..
LCS https://www.acmicpc.net/problem/9251 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net // woohyeon.kim // https://www.acmicpc.net/problem/9251 #include #include using namespace std; int main() { ios::sync_with_stdio(false), cin.tie(NULL); int dp[1001][1001] = { 0 }; string str1, s..
신나는 함수 실행 https://www.acmicpc.net/problem/9184 9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net // woohyeon.kim // https://www.acmicpc.net/problem/9184 #include using namespace std; int dp[51][51][51]; int main() { ios::sync_with_stdio(false), cin.tie(NULL); for (register int i = 0, j, k; i c; if (a == -1 && b..
연산자 끼워넣기 https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net // woohyeon.kim // https://www.acmicpc.net/problem/14888 #include using namespace std; int N, arr[11], sign[10], tmp[10], min_ans, max_ans; bool chk[10]; void dfs(register int count) ..
스도쿠 https://www.acmicpc.net/problem/2580 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루 www.acmicpc.net // woohyeon.kim // https://www.acmicpc.net/problem/2580 #include #include using namespace std; int arr[9][9]; bool row[9][10], column[9][10], rect[9][10]; void dfs(register int count) { register int x = count / 9; regis..
N-Queen https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net // woohyeon.kim // https://www.acmicpc.net/problem/9663 #include using namespace std; int N, ans; int chk[15]; bool check(register int& x) { for (register int i = 1; i < x; ++i) { if (chk[i] == chk[x] || abs(chk[x] - chk[i])..
N과 M (4) https://www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net // woohyeon.kim // https://www.acmicpc.net/problem/15652 #include #include using namespace std; int N, M, arr[9]; void dfs(register int index, register int count) { if (count == M) { for (register int i = 1; i