[백준] 11006 - 남욱이의 닭장



문제 풀이 정보




문제

계란집을 운영하는 남욱이는 매일 닭장에서 달걀을 수거해간다. 어느날 닭장에 들어가보니 일부 닭의 다리가 하나씩 사라졌다. 남욱이는 얼마나 많은 닭들이 한 다리를 잃었는지 알고 싶었지만 닭이 너무 많아 셀 수 없었고, 대신 모든 닭의 다리 수를 셌다. 고민하는 남욱이를 위해 모든 닭의 다리 수의 합과 닭의 수를 가지고 이것을 해결해주자.

첫째 줄에 총 테스트 케이스의 수 T (T ≤ 25) 가, 둘째 줄 부터 T + 1째 줄 까지 매 줄 마다 모든 닭의 다리 수의 합 N (1 ≤ N ≤ 300) 과 닭의 수 M (M ≤ N ≤ 2M) 이 공백을 간격으로 입력된다.

테스트 케이스마다 한 줄에 다리가 잘린 닭의 수 U와 멀쩡한 닭의 수 T를 공백을 간격으로 출력한다.



작성한 소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>

int main() {
int t, n, m, i;

scanf("%d", &t);

for (i=0; i<t; i++) {
scanf("%d %d", &n, &m);
printf("%d %d\n", 2*m-n, m-(2*m-n));
}

return 0;
}



출력 결과




메모

이 문제는 안 푼 문제 랜덤으로 뽑은 문제인데 문제 자체는 쉬운 편이었다. 가장 먼저 테스트 케이스의 수에 해당하는 정수형 변수 t, 닭의 다리 수의 합을 나타내는 정수형 변수 n, 닭의 수를 나타내는 정수형 변수 m, 그리고 테스트 케이스만큼 for문을 돌며 비교하기 위하여 사용되는 임시 정수형 변수 i를 선언하였다.

테스트 케이스를 입력 받은 후에 다리가 잘린 닭의 수와 멀쩡한 닭의 수를 추가로 입력 받았는데 이 때 단순한 계산만으로도 바로 출력하여 그 결과를 나타낼 수 있었다. 첫 번째로 출력되는 값은 다리가 잘린 닭의 수인데, 이 경우 모든 닭의 수 * 2를 한 값에서 모든 닭의 다리 수를 빼면 그 수를 계산할 수 있기 때문에 2 * m - n으로 수식을 세웠다.

두 번째로 출력되는 값은 멀쩡한 닭의 수인데, 이 경우 모든 닭의 수에서 방금 전에 계산했던 모든 닭의 수 * 2를 한 값에서 모든 닭의 다리 수를 뺀 값을 빼주면 그 수를 계산할 수 있기 때문에 m - (2 * m - n) 으로 수식을 세워볼 수 있었다. 이 문제는 간단한 수식 계산만으로도 쉽게 풀리는 문제였던 것 같아 추가적인 고찰은 하지 않아도 될 것 같다.

[백준] 11006 - 남욱이의 닭장

https://y8ncastle.world/2018/04/10/boj/11006-c/

Author

Alec J

Posted on

2018-04-10

Updated on

2021-02-09

Licensed under