728x90
+) 풀이 코드
https://github.com/jung0115/CodingTestPractice.git
1712번 - 2021.08.22.일
#include <stdio.h>
int main(void){
int A, B, C, result;
scanf("%d %d %d", &A, &B, &C);
if( (B>C) || (A!=0 && B==C) ) //손익분기점이 존재하지 않는 경우
printf("-1");
else{
result=A/(C-B);
printf("%d", result+1);
}
return 0;
}
2292번 - 2021.08.22.일
#include <stdio.h>
int main(void){
int N, sum=1,cnt=1;
scanf("%d", &N);
while(sum<N){
sum=sum+cnt*6;
cnt++;
}
printf("%d", cnt);
return 0;
}
1193번 - 2021.08.22.일
#include <stdio.h>
int main(void){
int X, up, down, sum=0, check=1;
scanf("%d", &X);
while(sum<X){
sum+=check;
check++;
}
check--;
sum-=check;
if((check%2)==0){
up=X-sum;
down=check-up+1;
}
else{
down=X-sum;
up=check-down+1;
}
printf("%d/%d", up, down);
return 0;
}
2869번 - 2021.08.25.수
#include <stdio.h>
int main(void){
int A, B, V, result, remain;
scanf("%d %d %d", &A, &B, &V);
result=(V-A)/(A-B);
remain=(V-A)%(A-B);
result++;
if(remain>0)
result++;
printf("%d", result);
return 0;
}
10250번 - 2021.08.25.수
#include <stdio.h>
int main(void){
int T, H, W, N, i, up, down, result;
scanf("%d", &T);
for(i=0; i<T; i++){
scanf("%d %d %d", &H, &W, &N);
down=(N/H)+1;
up=(N%H);
if(up==0){
down--;
up=H;
}
result=(up*100)+down;
printf("%d\n", result);
}
return 0;
}
2775번 - 2021.08.25.수
#include <stdio.h>
int main(void){
int T, k, n, i, j, people[15][14];
for(i=0; i<15; i++){
people[0][i]=i+1;
}
for(i=1; i<15; i++){
people[i][0]=1;
for(j=1; j<14; j++){
people[i][j]=people[i][j-1]+people[i-1][j];
}
}
scanf("%d", &T);
for(i=0; i<T; i++){
scanf("%d %d", &k, &n);
printf("%d\n", people[k][n-1]);
}
return 0;
}
2839번 - 2021.08.26.목
#include <stdio.h>
int main(void){
int N, five, three, remain;
scanf("%d", &N);
five=N/5;
remain=N%5;
three=remain/3;
remain=remain%3;
if(remain==0)
printf("%d", five+three);
else if(remain==1&&N>=6){
five--;
three+=2;
printf("%d", five+three);
}
else if(remain==2&&N>=12){
five-=2;
three+=4;
printf("%d", five+three);
}
else
printf("-1");
return 0;
}
10757번 - 2021.08.26.목 (틀린 답)
#include <stdio.h>
int main(void){
unsigned long long A, B, sum;
scanf("%llu %llu", &A, &B);
sum=A+B;
printf("%llu", sum);
return 0;
}
: 큰 정수의 합을 구하는 문제라서 unsigned long long을 사용하면 해당 범위까지 커버가 가능할 거라고 생각했다. 문제에 제시된 샘플값은 제대로 계산했지만 채점해보니 틀렸다고 나왔다.
10757번 - 2021.08.26.목 (맞는 답)
#include <stdio.h>
#include <string.h>
void change(char *num, int len); //문자열을 역순으로 재정렬
int main(void){
char A[10002]={0}, B[10002]={0};
int sum[10003]={0};
int i, lenA, lenB, len;
scanf("%s %s", A, B);
lenA=strlen(A);
change(A, lenA);
lenB=strlen(B);
change(B, lenB);
for(i=0; i<lenA || i<lenB; i++){
if(A[i]=='\0')
A[i]='0';
if(B[i]=='\0')
B[i]='0';
sum[i]+=(A[i]-'0')+(B[i]-'0');
if(sum[i]>=10){
sum[i+1]+=1;
sum[i]-=10;
}
}
if(sum[i]==0)
i--;
for(; i>=0; i--)
printf("%d", sum[i]);
return 0;
}
void change(char *num, int len){
int i, temp;
for(i=0; i<len/2; i++){
temp=num[i];
num[i]=num[len-i-1];
num[len-i-1]=temp;
}
}
: 큰 정수를 문자열로 입력 받아서 계산했다. 그리고 문자열이 입력되면 마지막 문자의 다음 인덱스값만 '\0'로 채워지는 줄 알았는데 그게 아니라 문자가 입력되어 있지 않은 인덱스는 전부 '\0'로 채워져있는듯 했다.
1011번 - 2021.08.26.목
#include <stdio.h>
#include <math.h>
int main(void){
int T, i;
long long x, y, num, lenth;
scanf("%d", &T);
for(i=0; i<T; i++){
scanf("%lld %lld", &x, &y);
lenth=y-x;
num=(int)sqrt(lenth);
if(lenth==num*num)
printf("%lld\n", (2*num)-1);
else if((num*num)<lenth && lenth<=(num*num)+num)
printf("%lld\n", 2*num);
else
printf("%lld\n", (2*num)+1);
}
return 0;
}
: 풀이 방법이 생각 안 나서 검색을 했다...
728x90
'Programming > C' 카테고리의 다른 글
[백준] 단계별로 풀어보기 > 문자열 (C언어) (0) | 2021.08.19 |
---|---|
[백준] 단계별로 풀어보기 > 함수 (C언어) (0) | 2021.08.19 |
[백준] 단계별로 풀어보기 > 1차원 배열 (C언어) (0) | 2021.03.25 |
[백준] 단계별로 풀어보기 > while문 (C언어) (0) | 2021.03.23 |
[백준] 단계별로 풀어보기 > for문 (C언어) (0) | 2021.03.21 |