https://www.acmicpc.net/problem/1009 1009번: 분산처리 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000) www.acmicpc.net 입력받은 두 수로 만들어지는 최대값이 10^2000000임을 유의하자. int형이던 long long형이던 이 범위까지 나타낼 수 없으므로 모듈러 계산을 통해 접근하면 된다. 모듈러 연산은 다음을 참고하자 (https://codejin.tistory.com/68) 곱셈 역시 n개의 수에 대해 모듈러 연산 법칙이 확장 가능하므로 a를 곱하는 것이 아닌 a를 10으로 나눈 나머지를 계속 곱해주자. 또한 결과값이..
https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 큐를 구현하는 문제. 구현해야 하는 사항은 다음과 같다. push X: 정수 X를 큐에 넣는 연산이다. pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 큐에 들어있는 정수의 개수를 출력한다. empty: 큐가 비어있으면 1, 아니면 0을 출력한다. front: 큐의 가장 앞에 있는 정수를 출력한..
https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 정수를 정렬하는 문제. 수 정렬하기2(https://www.acmicpc.net/problem/2751)는 시간을 적게준 대신에 메모리는 넉넉하게 줬다면, 이번에는 시간을 좀 널널하게 주는 대신에 메모리를 확 줄여버린 문제이다. 처음에는 그게 무슨상관이지? 했는데, 메모리를 적게 준데에는 다 이유가 있었던거 같다. 수 정렬하기 2도 퀵소트로 풀려다가 못풀어서 결국 C의 stdlib헤더의 qsort와 C++의 std:..
https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 스택을 구현하는 문제. 자료구조에 관한 공부는 다음에 좀더 심층적으로 하고, 우선은 스택은 LIFO (Last In, First Out)구조라는 것만 알고 넘어가자. 구현해야 하는 함수는 다음과 같다. push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. s..
https://programmers.co.kr/learn/courses/30/lessons/86051?language=c 코딩테스트 연습 - 없는 숫자 더하기 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 0부터 9까지 배열에 없는 수를 더하는 문제. false 10개로 이루어진 배열을 만들고 있는 숫자를 true로 바꾼후에 false인 수를 더한다. #include #include #include // numbers_len은 배열 numbers의 길이입니다. int solution(int num..
https://www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 최소 이동 횟수를 구하는 문제. 어쩔 수 없이 직접 이동 거리를 써보면서 규칙을 찾아야 한다. 맨 마지막 이동거리는 1이어야만 하고 맨 처음 출발 역시 1로 시작해야 한다. 거리가 26일때 까지만 써보자 거리 (y-x) 이동 횟수 1 1 1 2 1 1 2 3 1 1 1 3 4 1 2 1 3 5 1 2 1 1 4 6 1 2 2 1 4 7 1 2 2 1 1..
https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 두수의 최대공약수와 최소공배수를 구하면 되는 문제. 최소공배수는 두수의 곱을 최대공약수로 나누면 되니 최대공약수만 구하면 된다. #include int gcd(int a, int b) { if (b == 0) return a; else return gcd(b, a % b); } int main () { int a, b, temp; scanf("%d %d", &a, &b); temp = gcd(a, b); printf("%d\n%d", temp, a*b/temp);..
https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 분명 2750번보다 시간제한이 더 널널한데도 같은 퀵정렬 알고리즘으로 풀리지 않는걸 보니 테스트케이스가 난리가 났나보다. 단계별 풀이에서는 내장 정렬을 사용하는걸 추천한다고 했으니 내장정렬을 써보자. https://dojang.io/mod/page/view.php?id=638 를 참조했다. #include int compare(const void *a, const void *b) // ..