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