728x90
● [문제번호 1712] 손익분기점
#include <stdio.h>
int main()
{
int A, B, C;
scanf("%d %d %d", &A, &B, &C);
if(B >= C)
{
printf("%d", -1);
return 0;
}
int count = (A / (C - B)) + 1;
printf("%d", count);
return 0;
}
// 손익분기점을 계산해서 {최소 판매수 = A / (C - B)보다 큰 가장 작은 정수} 이용
● [문제번호 2292] 벌집
#include <stdio.h>
int main()
{
int N;
scanf("%d", &N);
int count = 2;
int range1 = 2;
int range2 = 7;
int gap = 6;
while(1){
if(N == 1)
{
count = 1;
break;
}
if(range1 <= N && N <= range2)
break;
range1 += gap;
range2 += (gap + 6);
gap += 6;
count++;
}
printf("%d", count);
return 0;
}
● [문제번호 1193] 분수찾기
#include <stdio.h>
int main()
{
int start = 1;
int gap = 0;
int end = start + gap;
int flag = 1;
int total = 2;
int X;
scanf("%d", &X);
while(1)
{
if(start <= X && X <= end)
break;
start = end + 1;
gap += 1;
end = start + gap;
// 1이면 홀수라인, -1이면 짝수 라인
flag *= -1;
total += 1;
}
if(flag == 1)
{
printf("%d/%d", total - (X - start) - 1, 1 + (X - start));
}
else if(flag == -1)
{
printf("%d/%d", 1 + (X - start), total - (X - start) - 1);
}
return 0;
}
● [문제번호 2869] 달팽이는 올라가고 싶다
#include <stdio.h>
int main()
{
int A, B, V;
scanf("%d %d %d", &A, &B, &V);
int sol = V - A;
if(sol % (A - B) == 0)
printf("%d", sol / (A - B) + 1);
else // 나누었을 때 소수점이 생기는 경우 1일 추가로 계산
printf("%d", sol / (A - B) + 2);
return 0;
}
● [문제번호 10250] ACM 호텔
#include <stdio.h>
int main()
{
int T;
scanf("%d", &T);
for(int i = 0; i < T; i++)
{
int H, W, N;
scanf("%d %d %d", &H, &W, &N);
int room = 0;
if(N % H == 0)
{
room += H * 100;
room += (N / H);
}
else
{
room += (N % H) * 100;
room += (N / H) + 1;
}
printf("%d\n", room);
}
return 0;
}
● [문제번호 2775] 부녀회장이 될테야
#include <stdio.h>
int room(int row, int col)
{
if(row == 0)
return col;
int total = 0;
for(int i = 1; i <= col; i++)
total += room(row-1, i);
return total;
}
int main()
{
int T;
scanf("%d", &T);
for(int i = 0; i < T; i++)
{
int K, N;
scanf("%d", &K);
scanf("%d", &N);
printf("%d\n", room(K, N));
}
return 0;
}
● [문제번호 2839] 설탕 배달
#include <stdio.h>
int main()
{
int N;
scanf("%d", &N);
int min = 5000;
int minus = -1;
while(1)
{
minus++;
if(N < minus * 5) break;
// 5KG 봉지의 갯수
int five = (N - minus * 5) / 5;
// 3KG 봉지의 갯수를 구하기 위한 임시 변수
int temp = N - (five * 5);
// 3KG 봉지의 갯수
int three = temp / 3;
// 5KG, 3KG로 나누고 나머지가 있다면 다음작업
if(temp % 3 != 0) continue;
// 최소의 갯수가 되는 지 확인
if(five + three < min)
min = five + three;
}
if(min == 5000)
printf("%d", -1);
else
printf("%d", min);
return 0;
}
● [문제번호 10757] 큰 수 A+B
#include <stdio.h>
#include <string.h>
int main()
{
// 10의 10000제곱이니 배열의 길이는 100000
// 덧셈이니 답의 길이는 1 더 길어야 함
char A[100000], B[100000], sol[100001];
scanf("%s %s", A, B);
int a = strlen(A);
int b = strlen(B);
char *longer, *shorter;
int gap;
// 자릿수에 따라 긴 수, 짧은 수 정하기
if(a > b)
{
longer = A;
shorter = B;
gap = a - b;
}
else
{
longer = B;
shorter = A;
gap = b - a;
}
// 올림이 있는 경우의 변수
int carry = 0;
// 문자열의 뒤에서 부터 읽기
for(int i = strlen(shorter) - 1; i >= 0; i--)
{
int tempLong = longer[i + gap] - '0';
int tempShort = shorter[i] - '0';
int sum = tempLong + tempShort + carry;
// 올림 변수 리셋
carry = 0;
longer[i + gap] = sum % 10 + '0';
// 올림이 있는 경우
if(sum >= 10)
carry = 1;
}
// 마지막 올림이 있는 경우
if(carry == 1)
{
// 자릿수가 동일하면 맨 앞에 1추가
if(a == b)
sol[0] = '1';
// 자릿수가 다른 경우
else
{
while(1)
{
int temp = longer[gap - 1] - '0' + carry;
longer[gap - 1] = temp % 10 + '0';
gap--;
// 올림이 더이상 없는 경우
if(temp < 10)
break;
// 최고 자릿수에 도달한 경우
if(gap == 0)
{
sol[0] = '1';
break;
}
}
}
}
strcat(sol, longer);
printf("%s", sol);
return 0;
}
● [문제번호 1011] Fly me to the Alpha Centauri
#include <stdio.h>
#include <math.h>
int main()
{
int T;
scanf("%d", &T);
for(int i = 0; i < T; i++)
{
int x, y;
scanf("%d %d", &x, &y);
int distance = y - x;
// 만약 temp를 하나씩 체크하며 찾을 경우 시간초과 발생
int temp = sqrt(distance);
int gap = distance - (temp * temp);
if(gap == 0)
printf("%d\n", 2 * temp - 1);
else if(gap <= temp)
printf("%d\n", 2 * temp);
else if(gap > temp)
printf("%d\n", 2 * temp + 1);
}
return 0;
}
728x90
'Baekjoon > 단계별로 풀어보기' 카테고리의 다른 글
[단계11] 부르트 포스 (5문제) (0) | 2021.01.13 |
---|---|
[단계10] 재귀 (4문제) (0) | 2021.01.12 |
[단계09] 기본 수학2 (11문제) (0) | 2021.01.09 |
[단계07] 문자열 (10문제) (0) | 2020.12.20 |
[단계06] 함수 (3문제) (0) | 2020.12.18 |
[단계05] 1차원 배열 (7문제) (0) | 2020.12.17 |
[단계04] while문 (3문제) (0) | 2020.12.17 |
댓글