PS/Solve
[Java] Boj 11006: 남욱이의 닭장
hyeon0117
2025. 2. 20. 16:14
문제
계란집을 운영하는 남욱이는 매일 닭장에서 달걀을 수거해간다. 어느 날 닭장에 들어가보니 일부 닭의 다리가 하나씩 사라졌다. 남욱이는 얼마나 많은 닭들이 한 다리를 잃었는지 알고싶었지만 닭이 너무 많아 셀 수 없었고, 대신 모든 닭의 다리수를 셌다. 고민하는 남욱이를 위해 모든 닭의 다리수의 합과 닭의 수를 가지고 이것을 해결해주자.
입력
첫째 줄에 총 테스트 케이스의 수 T (T ≤ 25)가, 둘째 줄 부터 T + 1째줄까지 매줄 마다 모든 닭의 다리수의 합 N (1 ≤ N ≤ 300)과 닭의 수 M (M ≤ N ≤ 2M)이 공백을 간격으로 입력된다.
출력
테스트 케이스마다 한줄에 다리가 잘린 닭의 수 U와 멀쩡한 닭의 수 T를 공백을 간격으로 출력한다.
작년 이맘때에는 PS 진짜 열심히했는데 방학내내 뭐 한게 없어서 그동안 공부 내용 정리 + PS 깔짝이라도 할 겸 간단한 문제들부터 다시 맛보기 시작..
정말 기본적인 수학 문제로 멀쩡한 닭은 다리가 2개, 다리 잘린 닭은 다리가 1개이다.
멀쩡한 닭이 x마리라면 다리가 잘린 닭은 M-x 마리가 존재하므로 이들의 다리 개수를 모두 더하면 N이 되어야 한다.
그러니 2x + M - x가 N이 되어야 하므로, x = N - M이란 식이 유도되고, 이것을 출력 형식에 맞게 출력하면 끝.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int tc = Integer.parseInt(bf.readLine());
for (int tmp = 0; tmp < tc; tmp++) {
st = new StringTokenizer(bf.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
int T = n - m; int U = m - T;
System.out.println(U + " " + T);
}
}
}
|
cs |