BaekJoon

조건문 단계, 반복문 단계 2525, 1110

wny0320 2023. 1. 18. 19:55

백준 온라인 코딩 문제풀이

https://www.acmicpc.net/

 

Baekjoon Online Judge

Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다.

www.acmicpc.net

 

코드 참고

https://replit.com/@wny0320

 

wny0320 (박 상운)

Run code live in your browser. Write and run code in 50+ languages online with Replit, a powerful IDE, compiler, & interpreter.

replit.com

 

2525, 1110번에 대해 다룸

해당 코드는 cpp로 작성되었음


2525

c#으로도 풀었던 오븐 시계 문항

시와 분을 받고 요리에 걸리는 분수를 받아 계산하여 24시간을 기준으로 시간을 적어 출력하는 문제

#include <stdio.h>

int main()
{
    int h, m, time = 0;
    scanf("%d %d", &h, &m);
    scanf("%d", &time);
    m += time;
    while (m >= 60)
    {
        m -= 60;
        h += 1;
    }
    if (h > 23)
        h -= 24;
    printf("%d %d", h, m);
}

시간을 받아 반복문을 통하여 60 이상이면 분수를 60빼고 시간에 1을 추가해주는 과정을 반복, 이후 시간이 23보다 크다면 24를 뺌

 

1110

마찬가지로 C#에서도 풀은 더하기 사이클 문항

 

#include <stdio.h>

int main()
{
    int num,new_num,cnt = 0;
    scanf("%d", &num);
    new_num = num;
    do
    {
        new_num = (new_num % 10 * 10) + ((new_num / 10 + new_num % 10)%10);
        cnt++;
    } while (new_num != num);
    printf("%d", cnt);
}

숫자를 받아 do while문으로 원래 수가 나올때까지 반복

 

새로운 수는 원래 수의 1의 자리 숫자를 10의 자리로 한것에 10의 자리수와 1의 자리수의 합의 1의 자리 수

 

따라서 1의 자리 수를 10을 곱함

new_num % 10 * 10

-10을 나눈 나머지는 1의 자리 수, 거기에 *10이면 10의 자리수로 만듦

 

(new_num / 10 + new_num % 10) %10

- new_num/10 은 10의 자리수, new_num%10은 1의 자리수, 각 합에 %10을 하면 합의 1의 자리 수가 나옴

 

따라서 해당 식을 작성 가능함

'BaekJoon' 카테고리의 다른 글

백준 24313 알고리즘 수업 - 점근적 표기  (0) 2023.12.06
백준 10988, 9506  (0) 2023.12.05
정렬 단계 2751  (0) 2022.12.27
정렬 단계 25305  (0) 2022.12.26
정렬 단계 2587  (0) 2022.12.25