https://www.acmicpc.net/problem/15894 15894번: 수학은 체육과목 입니다 성원이는 수학을 정말 못 하는 고등학생이다. 수학을 못하는 대신 근성과 팔 힘이 뛰어난 성원이는 수학 시험에서 수학 지식을 사용하지 않고 근성과 체력을 사용해 문제를 푼다. 지난 시험에서 www.acmicpc.net #include // 수학은 체육과목 입니다 int main() { long long n; scanf("%lld", &n); printf("%lld", n * 4); return 0; } MEMO -- 1 -> 4, 2 -> 8, 3 -> 12, 4 -> 16 ... 직접 n에 대해서 값을 구해봄(4씩 증가하는 패턴) -- 쉬운 문제이지만 항상 값의 범위에 대해서 잘 생각하자 -- 패턴을..
https://www.acmicpc.net/problem/24264 24264번: 알고리즘 수업 - 알고리즘의 수행 시간 3 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net #include // 알고리즘 수업 - 알고리즘의 수행 시간 3 int main() { long long n; scanf("%lld", &n); printf("%lld\n2", n * n); return 0; } MEMO -- MenOfPassion에서 이중반복문이 있고, 이 반복문은 n * n번 수행한다. -- 시간복잡도: O(n^2) !! int, lo..
https://www.acmicpc.net/problem/24263 24263번: 알고리즘 수업 - 알고리즘의 수행 시간 2 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net #include int main() { int n; scanf("%d", &n); printf("%d\n1", n); return 0; } MEMO -- MenOfPassion 함수는 n번동안 sum에 arr의 값을 더하여 반환하는 함수이다. -- O(n) --> n값과 1을 출력하여 해결
https://www.acmicpc.net/problem/24262 24262번: 알고리즘 수업 - 알고리즘의 수행 시간 1 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net #include #include int main() { int n; scanf("%d", &n); printf("1\n0"); return 0; } MEMO -- 문제의 MenOfPassion 함수는 n / 2의 인덱스에 해당하는 값을 반환하기만 한다. -- 결국 상수시간(1)만 걸리는 것이므로 1과 0을 출력하면 해결 !! 시간복잡도 생각해보며 코드 짜기..
https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net ~~ 1 ~~ #include // 구간 합 구하기 4 int main() { int n, m; scanf("%d %d", &n, &m); int arr[100001]; for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } int ans[100001], sum = 0; for (int i = 0; i < n; i++) { sum +..
https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net #include // 제로 #include typedef struct { int* stk; int ptr; }STACK; int is_empty(STACK* s) { if (s->ptr ptr stk[s->ptr++] = num; *sum += num; } } void pop(STACK* s, int *sum) { if (!is_empty(s)) { *sum -=..
https://www.acmicpc.net/problem/2589 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net #include // 보물섬 #include #include #define max(a, b) a > b ? a : b char graph[51][51]; int visit[51][51]; int dx[4] = { 0, 0, 1, -1 }; int dy[4] = { 1, -1, 0, 0 }; int ans = -1; typedef struct { int x; int y; struct node* next..
https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net #include // 수들의 합 2 int main() { int n, m; scanf("%d %d", &n, &m); int arr[10001] = { 0, }; for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } int cnt = 0; for (int i = 0; i < n; i++) { int j = i +..