전체 글 129

[백준] 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 += ..

[백준] 2908번 상수 C, java

https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net C #include #include int main() { char n1[4];//첫번째 입력 char n2[4];//두번째 입력 char temp1, temp2;//문자열을 뒤집을 때 사용할 변수 scanf("%s %s", n1, n2);// 문자열 두개 입력 temp1 = n1[0]; n1[0] = n1[2]; n1[2] = temp1;//첫번째 문자열 뒤집기 temp2 = n2[0]; n2[0] = n2..

[백준] 1541번 잃어버린 괄호 C

https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net C - 없이 +만 있을 경우는 괄호가 필요 없으므로 신경 쓸 필요없다. - 연산자만 있을 경우를 코딩해주면 됨. 최소값이 나와야 하므로 -뒤에 나온 숫자부터 묶는 것이 좋다. 만약 - 연산자 뒤에 - 연산자가 또 입력될 경우에는 끝까지 괄호로 묶을 경우 +가 되므로 두번째 - 전까지 묶는다. #include int main() { int a=0, b=0; int i = 0; char c; f..

[백준] 3009번 네 번째 점 C, java

https://www.acmicpc.net/problem/3009 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net C #include int main() { int x[4], y[4];//입력받을 좌표 3개 for (int i = 0; i < 3; i++) { scanf("%d %d", &x[i], &y[i]);//좌표값 입력받기 } if (x[0] == x[1]) x[3] = x[2]; else if (x[0] == x[2]) x[3] = x[1]; else x[3] = x[0]; //첫좌표x값이 두번째좌표x값과 같은 경우 출력되어야할 x좌표값은 3번째좌표x값과 같아야 함 if (y[0]..

[백준] 1085번 직사각형에서 탈출 C, java

https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net 현재 좌표가 오른쪽 위 꼭짓점과 가까운지 원점과 가까운지 판단하고 값이 더 작은(가까운) 값을 최소값으로 선택한다. x,y 중에도 최소값을 찾아야 하므로 마지막에 비교하여 가장 최소값을 찾는다. C #include int main() { int x, y, w, h; int a,b,c; scanf("%d %d %d %d", &x, &y, &w, &h);//현재 좌표(x,y), 오..

[백준] 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..

[백준] 10162번 전자레인지 C, java

https://www.acmicpc.net/problem/10162 10162번: 전자레인지 3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은 www.acmicpc.net C #include int main() { int t; int cnta,cntb,cntc; scanf("%d", &t); if (t % 10 != 0) printf("-1\n"); else { cnta = t / 300; t = t % 300; cntb = t / 60; t = t % 60; cntc = t / 10; printf("%d %d %d", cnta, cntb, cntc); }..