개키우는개발자 : )

[자바 알고리즘] 나이 계산 본문

Algorithm Programming/Java

[자바 알고리즘] 나이 계산

DOGvelopers 2020. 1. 7. 14:04
반응형

광고 클릭은 개발자(저) 에게 큰 힘이 됩니다!!'ㅁ'

 

| 문제

주민등록증의 번호가 주어지면 주민등록증 주인의 나이성별을 판단하여 출력하는 프로그램 을 작성하세요.

주민등록증의 번호는 -를 기준으로 앞자리와 뒷자리로 구분된다.

뒷자리의 첫 번째 수가 1이면 1900년대생 남자이고, 2이면 1900년대생 여자, 3이면 2000년대 생 남자, 4이면 2000년대생 여자이다. 올해는 2020년입니다. 해당 주민등록증 주인의 나이와 성별을 출력하세요.

 

| 입력설명1

주민등록증 번호가 입력됩니다.

 

| 출력설명1

나이와 성별을 공백을 구분으로 출력하세요. 성별은 남자는 M(man), 여자는 W(Woman)로 출력한다.

 

| 입력 예제1

780316-2376152

 

| 출력 예제1

43 W

 

| 입력 예제2

061102-3575393

 

| 출력 예제2

15 M

 

| 풀이

 

입력한 문자열 -> 문자 배열로 변환 a[7]는 성별을 나타내는 문자 이다. 

1,2 는 1900년대 생이다. 그렇기 때문에 1900을 더해준다 여기에서 주의 할 점은 char 0은 숫자 48이다 하지만 우리가 입력한 주민등록번호는 앞자리가 7이다 그렇다면 char 7을 나타내는 55와 - 48을 빼주면 숫자 7이 나온다. 그리고 거기에 10을 곱해주면 1970이 되며 a[1]인 8을 더해주면 1978년 생임을 알 수 있다. 그 후 2020년을 빼주고 성별을 나눠 주면 완료

아스키 코드

import java.util.Scanner;

public class Test5 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        char[] a = str.toCharArray();
        int year,age;
        if(a[7] == '1' || a[7] == '2' ){
            year=1900+((a[0]-48)*10+(a[1]-48));
        }else{
            year = 2000+((a[0]-48)*10+(a[1]-48));
        }
        age = 2020-year+1;
        System.out.printf("%d ", age);
        if(a[7] == '1' || a[7] == '3' ) System.out.printf("M\n");
        else System.out.printf("W\n");
    }
}

결과1
결과2

반응형
Comments