[BEAKJOON] 풀었던 문제들 복습 - 1편(1000번,1001번,1003번,1008번,1057번)

SW 업무 관련/백준

[BEAKJOON] 풀었던 문제들 복습 - 1편(1000번,1001번,1003번,1008번,1057번)

WillBe_ 2017. 9. 17. 16:06

문제들 출처 : https://www.acmicpc.net/




1. https://www.acmicpc.net/problem/1000 - 1000번 A+B



풀이 - 생략


제출코드

1
2
3
4
5
6
7
8
9
#include <stdio.h>
 
int main()
{
    int a, b;
    scanf("%d%d",&a,&b);
    printf("%d",a+b);
    return 0;
}
cs


------------------------------------------------------------------------------------------


2. https://www.acmicpc.net/problem/1001 -> 1001번 A - B


풀이 - 생략


제출코드

1
2
3
4
5
6
7
8
9
#include <stdio.h>
 
int main()
{
    int a, b;
    scanf("%d%d",&a,&b);
    printf("%d",a-b);
    return 0;
}
cs


------------------------------------------------------------------------------------------

3. https://www.acmicpc.net/problem/1003 -> 1003번 피보나치 함수


풀이


문제에서 N번째 피보나치 함수를 구하는 함수가 주어져 있다. 여기서 if else 문에서 n==0, n==1일 때 변수 두 개를 사용하여 return 되기 전에 +1씩 더해주면 된다.


제출코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
int a, b;
 
int fc(int num)
{
    if (num == 0)
    {
        a++;
        return 0;
    }
    else if (num == 1)
    {
        b++;
        return 1;
    }
    return fc(num - 1+ fc(num - 2);
}
 
int main()
{
    int T,c;
    scanf("%d"&T);
    while (T--)
    {
        scanf("%d",&c);
        a = b = 0; //변수 초기화
        fc(c);
        printf("%d %d\n", a, b);
    }
    return 0;
}
cs

------------------------------------------------------------------------------------------

4. https://www.acmicpc.net/problem/1008 -> 1008번 A/B

풀이

printf("%.9lf",(double)a/b);

%와 lf 사시에 .9를 주의하자~ .x는 소수점 x번째 까지 출력하라.


제출코드

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
int main()
{
    int a, b, c = 0;
    scanf("%d %d"&a, &b);
    
    printf("%.9lf", (double)a/b);
    return 0;
}
cs

------------------------------------------------------------------------------------------

5. https://www.acmicpc.net/problem/1057 -> 1057번 토너먼트


풀이 - 숏코딩 전체 25등, C언 15등!


1. 두 변수 a,b에 (변수+1) /2을 해준 후 , a==b면 종료해준다.

2. (변수 + 1)/2한 회수가 답.


변수에 +1을 해주는 이유는, 문제에서 주어진 예제 16 8 9의 입력이면

9는 다음 라운드에서 5가 되어야되는데, 4가된다. 홀수의 경우 1을 해주어야 되며, 짝수는 +1을 해준 후 /2연산을 하여도 원하는 값이 된다.


제출코드(숏코딩에 제출한 코드는 말 그대로 숏코딩 코드라..안 올림)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
int main()
{
    int a, b, c, ans = 0;
    scanf("%d %d %d"&a, &b, &c);
    while (1)
    {
        b = (b + 1/ 2;
        c = (c + 1/ 2;
        ans++;
        if (b == c)
            break;
    }
    printf("%d", ans);
    return 0;
}
cs