문제
주민등록증의 번호로 주민등록증 주인의 나이와 성별을 판단하여 출력하는 프로그램을 작성하세요. 주민등록증의 번호는 -를 기준으로 앞자리와 뒷자리로 구분된다.
뒷자리의 첫 번째 수가 1이면 1900년대생 남자이고, 2이면 1900년대생 여자,3이면 2000년대생 남자, 4이면 2000년대생 여자이다.
올해는 2021년입니다. 해당 주민등록증 주인의 나이와 성별을 출력하세요.
성별은 남자의 경우 M, 여자이 경우 W로 출력한다.
입력 예제
061102-3575393
출력 예제
16 M
답
public class problem05 {
public static void main(String[] args) {
String identification1 = "780316-2376152";
String identification2 = "061102-3575393";
String result1 = method2(identification1);
String result2 = method2(identification2);
System.out.println(result1);
System.out.println(result2);
}
//첫 번째 답
public static String method(String identification) {
String result="";
String[] array = identification.split("-");
String first = array[0];
String year = first.substring(0,2);
String second = array[1];
String sex = second.substring(0,1);
int yearInt = 0;
if(sex.equals("1") || sex.equals("2"))
yearInt = Integer.parseInt("19"+year);
else
yearInt = Integer.parseInt("20"+year);
int age = 2021-yearInt+1;
String sexResult = "";
if(sex.equals("1") || sex.equals("3"))
sexResult = "M";
else
sexResult = "W";
result = Integer.toString(age)+" "+sexResult;
return result;
}
//두 번째 답
public static String method2(String a) {
String result="";
int age = Integer.parseInt(a.substring(0,2));
char first = a.charAt(7);
if(first == '1'||first == '2')
age += 1900;
else
age += 2000;
String sex = "W";
if(first == '1'||first == '3')
sex = "M";
int ageResult = 2021 - age + 1;
result = Integer.toString(ageResult) + " " + sex;
return result;
}
}