본문 바로가기

코딩테스트/Level1

나이계산

문제

주민등록증의 번호로 주민등록증 주인의 나이와 성별을 판단하여 출력하는 프로그램을 작성하세요. 주민등록증의 번호는 -를 기준으로 앞자리와 뒷자리로 구분된다.
뒷자리의 첫 번째 수가 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;
		
	}
}

'코딩테스트 > Level1' 카테고리의 다른 글

영어단어 복구  (0) 2022.02.09
숫자만 추출  (0) 2022.02.09
나이 차이  (0) 2022.02.09
진약수의 합  (0) 2022.02.09
자연수의 합  (0) 2022.02.09