No. 11720
#include<stdio.h>
int main()
{
int n, i, sum = 0;
scanf("%d", &n);
char number[100];
scanf("%s", number);
for (i = 0; i < n; i++) {
sum += number[i] - '0';
}
printf("%d", sum);
}
<코드 설명>
먼저 입력받을 숫자의 개수인 n을 입력받는다. 그리고 배열 number을 입력받는다. 입력받은 수의 개수인 n만큼을 for문을 통해 반복시켜 그 안에서 sum값을 구한다. sum에는 number의 원소들을 계속 더해주는데 처음 입력받을 때 char형으로 입력받았기 때문에 숫자로 변환시켜주기 위해 '0'을 빼줘야한다. 이 과정을 거쳐 구해진 sum을 출력해준다.
<실행 결과>
No. 1085
#include<stdio.h>
int main()
{
int x, y, w, h, min;
scanf("%d %d %d %d", &x, &y, &w, &h);
min = x;
if (min > y) min = y;
if (min > w - x) min = w - x;
if (min > h - y) min = h - y;
printf("%d", min);
return 0;
}
<코드 설명>
x, y, w, h를 입력 받고 일단 min을 x로 설정한다. 이는 다른 값과 계속 비교하면서 min을 갱신하기 위함이다. 경계에 도착하는 최소 길이이기 때문에 x, y, w-x, h-y 중 가장 작은 값이 답이 된다. 따라서 min값과 나머지 y, w-x, h-y를 비교해주며 가장 작은 값을 찾아 min에 넣어주었다. 그리고 이를 출력해주었다.
<실행 결과>
No. 10250
#include<stdio.h>
int main()
{
int t, h, w, n, i, cnt;
scanf("%d", &t);
for (i = 0; i < t; i++) {
cnt = 1;
scanf("%d %d %d", &h, &w, &n);
while (n > h) {
n = n - h;
cnt++;
}
printf("%d%02d\n", n, cnt);
}
return 0;
}
<코드 설명>
test case인 t를 입력받고 그만큼 for문을 이용해 반복시킨다. 그 내에서 h, w, n을 각 각 입력받는다. 방 배정이 1층부터 위쪽으로 채워지므로 n에서 h를 빼주며 몇번 빠졌는지를 cnt에 저장해주었다. 이는 몇호인지 체크하기 위함이다. n에서 계속 건물의 높이인 h를 빼주면 마지막에 남은 n값이 몇층인지를 결정해준다.
따라서 n과 cnt를 붙여 출력해주었다. 이때 cnt는 %02d로 출력해주어 무조건 두자리로 출력되도록 하였다.
<실행 결과>
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ] 1929 소수 구하기 (0) | 2022.04.02 |
---|---|
[BOJ] 10828 스택 (0) | 2022.04.02 |
[SISS] C 백준 7주차 (10809, 10818, 10871) (0) | 2022.02.08 |
[SISS] C 백준 6주차 (2908, 2920, 3052) (0) | 2022.02.01 |
[SISS] C 백준 5주차 (2742, 2753, 2884) (0) | 2022.01.30 |