본문 바로가기
C/Baekjoon

[BOJ] SISS 겨울방학 스터디 - 5주차

by 단월໒꒱ 2022. 1. 28.

#2742

[문제]

 

 

 

[코드]

 

#include <stdio.h>

int main() {
    int N;
    
    scanf("%d", &N);
    
    for (int i = N; i >= 1; i--) {
        printf("%d\n", i);
    }
    
    return 0;
}

 

 

[설명]

자연수 N을 정수로 선언하고 scanf 함수로 수를 입력받는다.

입력받은 N을 기준으로 N부터 1까지 한줄에 하나씩 출력해야 하므로 반복문을 이용한다.

반복문 for를 이용하여 i에 N의 값을 저장하고 N부터 하나씩 값을 줄여나가면서 i 값을 출력한다.

 

 

 

#2753

[문제]

 

 

 

[코드]

 

#include <stdio.h>

int main() {
    int N;
    
    scanf("%d", &N);
    
    if ((N % 4 == 0 && N % 100 != 0) | (N % 400 == 0))
        printf("1\n");
    
    else printf("0\n");
    
    return 0;
}

 

 

[설명]

입력받을 연도 N을 scanf 함수로 입력 받는다.

연도가 4의 배수이면서 100의 배수가 아닐 때는 N이 4로 나눴을 때 나머지가 0이고 100으로 나눴을 때 나머지가 0이 아닌 경우이다.

연도가 400의 배수일 때는 N이 400으로 나눴을 때 나머지가 0인 경우이다.

해당하는 두 조건을 if 문의 조건문에 넣어주고 둘 중 하나를 만족할 시 1을, 둘 다 아닌 경우 0을 출력하도록 한다.

 

 

 

#2884

[문제]

 

 

 

[코드]

 

#include <stdio.h>

int main() {
    int H, M;
    
    scanf("%d %d", &H, &M);
    
    if (H >= 0 && H <= 23 && M >= 0 && M <= 59) {
        if (M >= 45) M -= 45;
        
        else {
            M = 60 - (45 - M);
            
            if (H == 0) H = 23;
            else H -= 1;
        }
    }
    
    printf("%d %d\n", H, M);
    
    return 0;
}

 

 

[설명]

상근이가 처음 설정한 알람 시간의 시, 분을 각각 H, M로 입력받는다.

창영이의 방법은 상근이가 설정한 시간에서 45분 일찍 알람 시간을 설정하는 것이므로 입력받은 시간에서 45분을 빼면 된다.

M이 45 이상이면 H에 변동이 없으므로 단순하게 45를 빼주면 된다.

아닌 경우에는 60 - (45 - M)의 값을 M에 저장해준 뒤 H에서 1을 빼준다.

여기서, H가 0인 경우에는 23으로 설정해준다. (시간을 24시간 표현으로 한다고 했으므로)

마지막으로 위의 과정을 통해 구한 H와 M을 출력한다.

 

 

 

댓글