알고리즘 38

[백준] 10757번 큰수 A + B C, java

https://www.acmicpc.net/problem/10757 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net C #include #include //strlen() //더했을 때 자리수가 올라가면 배열이 하나씩 다 밀리기 때문에 복잡해짐 //문자열을 역순으로 바꿔 밀리지 않고 뒤에 추가되도록 만듦 int reverse(char arr[]) { char tmp; int len = strlen(arr); for (int j = 0; j < len/2; j++) { tmp = arr[j]; arr[j] = arr[len - j - 1]; arr[len - j - 1] = tmp; } return 0; } int mai..

[백준] 10872번 팩토리얼 C, java

https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net C #include int fact(int n) { if (n > 1) return n * fact(n - 1); else return 1; } int main() { int n=0; scanf("%d", &n); /*재귀함수 사용하지 않을 때 int fact = 1; for (int i = 1; i 1) return n*fact(n-1); else return 1; } } 재귀함수를 사용하여 하나씩 작아지는 값을 곱한다. 이것도 코딩 처음 공부 시작했을 때 했던 알고리듬..듬..

[백준] 2869번 달팽이는 올라가고 싶다 C, java

https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net C #include int main() { int a, b, v; int ab = 0;//올라가야할 나머지 길이 int count = 0; scanf("%d %d %d", &a, &b, &v); count = (v - b - 1) / (a - b) + 1; printf("%d", count); return 0; } 달팽이가 미끄러지기 전에 정상에 도착하는 경우가 있으니 v-b미터만 올라가면 목표에 달성한다. 따라서 총 v-b미터를 매일 a-b미터씩 올라간..

[백준] 10870번 피보나치 수 5 C, java

https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net C #include int fibo(int n); int main() { int n; scanf("%d", &n);//반복할 횟수 printf("%d", fibo(n+1));//fibo함수 출력하기 return 0; } //피보나치 수열 재귀함수 int fibo(int n) { if (n

[백준] 1316번 그룹 단어 체커 C

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net C #include #include int wordcheck(char word[], int wordlen); int main() { int num;//입력할 단어 개수 char word[101]; int cnt = 0;//그룹 단어 개수 카운트 값 scanf("%d", &num);//단어의 개수 입력 //단어 개수만큼 단어 입력 for (int i = 0; i < ..

[백준] 2447번 별 찍기-10 C, java

https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net C #include void starstemp(int i, int j, int n); int main() { int n,i,j; scanf("%d", &n);//N값 입력 //행,열 n*n크기 정사각형 만들기 for (i = 0; i < n; i++) {//행 for (j = 0; j < n; j++) {//열 starstemp(i, j, n);//*을 찍는 함수 호출 ..

[백준] 5622번 다이얼 C, java

https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net C #include #include int main() { char num[16];//최대 길이가 15이므로 int rst=0;//총 시간 int len=0;//문자열 길이 scanf("%s", num); len = strlen(num);//문자열 길이 측정 //문자열 길이만큼 for문으로 문자열 탐색-> 시간 더하기 for (int i = 0; i < len; i++) { if (num[i] == 'A' || num[i] == 'B' || num[i] == 'C') rst += ..

[백준] 2217번 로프 C, java

https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net C #include #include int compare(const void* first, const void* second) { if (*(int*)first *(int*)second) return 1; else return 0; } int main() { int n; //줄 갯수 int w[1..