내가 생각했을때 문제에서 원하는부분
The first line contain the number of antenna that the witness claimed to have seen on the alien.
The second line contain the number of eyes seen on the alien.
The output will be the list of aliens who match the possible description given by the witness.
If no aliens match the description, there is no output.
내가 이 문제를 보고 생각해본 부분
BufferedReader를 사용하여 표준 입력(System.in)으로부터 데이터를 읽는다.
첫 번째 줄에서 외계인의 더듬이 수(antenna)를 읽고, 두 번째 줄에서 눈 수(eyes)를 읽어 정수로 변환한다.
조건 정의:
isTroyMartian: 더듬이가 3개 이상 4개 이하이고, 눈이 0개 이상 4개 이하인 경우.
isVladSaturnian: 더듬이가 0개 이상 6개 이하이고, 눈이 2개 이상인 경우.
isGraemeMercurian: 더듬이가 2개 이하이고, 눈이 3개 이하인 경우.
각 조건을 boolean 변수에 저장하여 외계인의 종류를 판별한다.
조건에 따른 출력:
각 조건이 참인 경우 해당 외계인의 이름을 출력해준다.
조건을 만족하지 않으면 출력하지 않는다.
코드로 구현
package baekjoon.baekjoon_25;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
// 백준 6778번 문제
public class Main885 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 첫 번째 줄에서 더듬이 수를 읽어옵니다.
int antenna = Integer.parseInt(br.readLine());
// 두 번째 줄에서 눈 수를 읽어옵니다.
int eyes = Integer.parseInt(br.readLine());
// TroyMartian의 조건: 3개 이상의 4개 이하의 더듬이와 0개 이상의 4개 이하의 눈
boolean isTroyMartian = (antenna >= 3 && antenna <= 4) && (eyes >= 0 && eyes <= 4);
// VladSaturnian의 조건: 6개 이하의 더듬이와 2개 이상의 눈
boolean isVladSaturnian = (antenna >= 0 && antenna <= 6) && (eyes >= 2);
// GraemeMercurian의 조건: 2개 이하의 더듬이와 3개 이하의 눈
boolean isGraemeMercurian = (antenna <= 2) && (eyes <= 3);
// 조건을 만족하면 해당 외계인의 이름을 출력합니다.
if(isTroyMartian) {
System.out.println("TroyMartian");
}
if(isVladSaturnian) {
System.out.println("VladSaturnian");
}
if(isGraemeMercurian) {
System.out.println("GraemeMercurian");
}
// BufferedReader를 닫습니다.
br.close();
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.