일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- JdbcTemplate
- JDBC TEMPLATE
- unix
- spring framework
- 마이바티스
- Dependency Injection
- spring aop
- java spring
- myBatis
- java
- Spring JDBC
- @JUnit
- 컨테이너
- SpringJDBC
- POJO
- Linux
- STS
- Di
- @Spring-Test
- 프로퍼티
- 리눅스
- @test
- spring
- XML
- Spring Boot
- AOP
- @AspectJ
- Ubunt
- pointcut
- Framework
Archives
- Today
- Total
개키우는개발자 : )
[자바 알고리즘] 나이 계산 본문
반응형
광고 클릭은 개발자(저) 에게 큰 힘이 됩니다!!'ㅁ'
| 문제
주민등록증의 번호가 주어지면 주민등록증 주인의 나이와 성별을 판단하여 출력하는 프로그램 을 작성하세요.
주민등록증의 번호는 -를 기준으로 앞자리와 뒷자리로 구분된다.
뒷자리의 첫 번째 수가 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");
}
}
반응형
'Algorithm Programming > Java' 카테고리의 다른 글
[자바 알고리즘] 영어단어 복구 (0) | 2020.01.08 |
---|---|
[자바 알고리즘] 숫자만 추출 (0) | 2020.01.08 |
[자바 알고리즘] 나이 차이 (0) | 2020.01.07 |
[자바 알고리즘] 진약수의 합 (4) | 2020.01.07 |
[자바 알고리즘] 자연수의 합 (0) | 2020.01.07 |
Comments