으하하 공부일기
[SWEA] - 3142. 영준이와 신비한 뿔의 숲 (D3) 본문
[문제]
영준이는 신비한 짐승들이 살고 있는 뿔의 숲을 지나왔다.
이 숲에는 뿔이 한 개 달린 유니콘과 뿔이 두 개 달린 트윈혼이 살고 있다.
영준이는 n개의 뿔과 m마리의 짐승을 보았다.
영준이가 본 유니콘의 수와 트윈혼의 수는 몇 마리일까?
만약 영준이가 5개의 뿔과 3마리의 짐승을 봤다면, 아래 그림과 같이 유니콘 1마리와 트윈혼 2마리였을 것이다.
[입력]
첫 번째 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스마다 첫 번째 줄에 두 정수 n, m (1 ≤ n ≤ 300, m ≤ n ≤ 2m)이 공백으로 구분되어 주어진다.
[출력]
각 테스트 케이스마다 영준이가 본 유니콘의 수와 트윈혼의 수를 공백으로 구분하여 출력한다.
문제 풀기
3142. 영준이와 신비한 뿔의 숲
[풀이]
☝ 연립방정식을 이용하여 풀이
- 유니콘이 x, 트윈혼이 y 마리라면 마리수의 총 합은 (x+y)가 되고 뿔 수의 총 합은 (x+2y) 이므로
x + y = m, x + 2y = n 으로, 트윈혼(y) 는 n-m마리 유니콘(x)은 (2m-n) 마리가 된다.
import java.util.Scanner;
class Solution {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for(int tc=1; tc<=t; tc++) {
int n = sc.nextInt();
int m = sc.nextInt();
int x = (2 * m) - n;
int y = n - m;
System.out.format("#%d %d %d\n", tc, x, y);
}
}
}
✌ 반복문을 통한 풀이
- 유니콘이 (i) 마리라고 한다면 트윈혼은 (m-i) 마리인것을 이용하여 반복문을 통해 풀이
import java.util.Scanner;
class Solution {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for(int tc=1; tc<=t; tc++) {
int n = sc.nextInt();
int m = sc.nextInt();
int sum = 0;
for(int i=0; i<=m; i++) {
sum = 2 * i + (m-i);
if(sum == n) System.out.format("#%d %d %d\n", tc, m-i, i);
}
}
}
}
'SWEA > D3' 카테고리의 다른 글
[SWEA] - 3282. 0/1 Knapsack (D3) (0) | 2022.05.10 |
---|---|
[SWEA] - 3233. 정삼각형 분할 놀이 (D3) (0) | 2022.05.10 |
[SWEA] - 3131. 100만 이하의 모든 소수 (D3) (0) | 2022.05.08 |
[SWEA] - 3032. 홍준이의 숫자 놀이 (D3) (0) | 2022.05.08 |
[SWEA] - 2930. 힙 (D3) (0) | 2022.05.07 |