목록C언어 (42)
사자자리

https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net #include #include int main(){ int len, judge = 1; char num[6] = {1}; while (1){ scanf("%s", num); if (num[0] == '0') break; len = strlen(num); judge = 1; for (int i = 0; i < len/2 + 1; i++){ if (num[i] == num[len-1]){ len--; } else{..

https://www.acmicpc.net/problem/1547 1547번: 공 첫째 줄에 컵의 위치를 바꾼 횟수 M이 주어지며, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 컵의 위치를 바꾼 방법 X와 Y가 주어지며, X번 컵과 Y번 컵의 위치를 서로 바꾸는 것 www.acmicpc.net #include int main(){ int n, a, b, ball = 1; scanf("%d", &n); for (int i = 0; i < n; i++){ scanf("%d %d", &a, &b); if (a == ball) ball = b; else if (b == ball) ball = a; } printf("%d", ball); return 0; }

https://www.acmicpc.net/problem/2755 2755번: 이번학기 평점은 몇점? 첫째 줄에, 백준이가 이번 학기에 들은 과목 수가 주어진다. 둘째 줄부터 N개의 줄에 각 과목의 과목명, 학점, 성적이 주어진다. 과목명은 알파벳 소문자와 숫자, 그리고 밑줄 (_)로만 이루어져 있 www.acmicpc.net #include double getGrade(char *grade){ double result; if (grade[0] == 'A') result = 4.0; else if (grade[0] == 'B') result = 3.0; else if (grade[0] == 'C') result = 2.0; else if (grade[0] == 'D') result = 1.0; else ..

https://www.acmicpc.net/problem/1236 1236번: 성 지키기 첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다 www.acmicpc.net #include int main(){ int n, m; int count, n_count = 0, m_count = 0; char castle[50][51]; scanf("%d %d", &n, &m); for (int i = 0; i < n; i++){ scanf("%s", &castle[i]); } //X가 0개인 열의 개수(n_count)를 구한다. count = 0; for (in..

https://www.acmicpc.net/problem/1145 1145번: 적어도 대부분의 배수 첫째 줄에 다섯 개의 자연수가 주어진다. 100보다 작거나 같은 자연수이고, 서로 다른 수이다. www.acmicpc.net #include int main(){ int arr[5]; int count = 0; for (int i = 0; i < 5; i++){//5개의 자연수 입력받기 scanf("%d", &arr[i]); } for (int result = 1; ; result++){ for (int i = 0; i < 5; i++){//result를 5개의 자연수들로 나누어서 나머지가 0이면 if (result % arr[i] == 0) count++; //count를 1 증가 } if (count ..

https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net #include int cycle(int num){ return (num%10)*10 + (num/10 + num%10)%10;//사이클을 한 번 돌렸을 때 나오는 새로운 수 } int main(){ int n, arg, count = 0, result = 100; scanf("%d", &n); arg = n; while (result != n){//result가 n(처음 입력받은 ..

https://www.acmicpc.net/problem/1037 1037번: 약수 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되 www.acmicpc.net #include int main(){ int count, n, min, max; int divisor[50]; scanf("%d", &count); for (int i = 0; i < count; i++){ scanf("%d", &divisor[i]);//약수들 입력받기 } min = divisor[0]; max = divisor[0]; for (int i = 0; i < count; i+..
동적 메모리가 필요한 경우 - 배열의 크기를 미리 알 수 없을 때 //배열의 크기는 상수로 지정할 수 없다. 컴파일 에러. int arr[size]; //배열의 최대 크기를 가정해서 할당하면, 메모리 낭비가 발생한다. int arr[1000]; - 동적 메모리를 사용하면, 원하는 만큼 메모리를 할당할 수 있으므로 메모리 낭비를 최소화할 수 있다. - 동적 메모리를 사용하면, 메모리의 할당과 해제 시간을 마음대로 선택할 수 있다. 동적 메모리의 할당과 해제 stdlib.h - 메모리 관련 함수를 사용하기 위해 필요한 헤더 malloc 함수 - Memory ALLOCation - 함수의 인자로 할당할 메모리의 바이트 크기를 입력한다. free 함수 - 포인터가 가리키는 동적 메모리를 해제한다. #includ..