반응형
안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1169 : 나이 계산 2 (자바, JAVA)입니다.
intro
Question
문제 설명
입력
나이가 입력으로 주어진다.(정수, 나이는 113살 이하만 입력으로 들어온다.)
출력
출생년도 뒤의 두자리와 연도정보(1이면 1900년대, 3이면 2000년대)를 출력한다.
(단, 출생년도 뒤 2자리가 10보다 작을 경우10의자리에 0은 붙이지 않고 출력한다.)
예) 2009년생이라면 9 3 을 출력함. (09 3 이 아님)
예시
- 입력 : 18
- 출력 : 95 1
Solution (풀이)
- 풀이 1 : 메모리 11244, 시간 90
public class Answer1 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int age = Integer.parseInt(br.readLine()); // 나이를 입력 받는다.
int now = 2012; // 현재 년도
int bornYear = now - (age-1); // 태어난 년도
// 년도의 마지막 두자리만 append
bw.append(String.valueOf(bornYear%100)).append(" ");
if (age>13) { // 나이가 12보다 크면 1900년대 생
bw.append("1");
} else { // 나이가 12보다 같거나 작으면 2000년대 생
bw.append("3");
}
bw.flush();
br.close();
bw.close();
}
}
- 풀이 2 : 메모리 11152, 시간 67
public class Answer2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int age = Integer.parseInt(br.readLine()); // 나이를 입력 받는다.
int now = 2012; // 현재 년도
int bornYear = now - (age-1); // 태어난 년도
// 년도의 마지막 두자리만 append
sb.append(bornYear%100).append(" ");
if (age>13) { // 나이가 12보다 크면 1900년대 생
sb.append("1");
} else { // 나이가 12보다 같거나 작으면 2000년대 생
sb.append("3");
}
System.out.print(sb);
}
}
BufferedWriter와 다르게 StringBuilder는 형식을 굳이 String 타입으로 맞추어 주지 않아도 append할 수 있다.
Ranking(순위)
반응형
'Algorithm > CodeUp' 카테고리의 다른 글
[CodeUp_Java] Q1171 : 당신의 학번은? 2 (0) | 2022.05.03 |
---|---|
[CodeUp_Java] Q1170 : 당신의 학번은? 1 (0) | 2022.05.03 |
[CodeUp_Java] Q1168 : 나이 계산 1 (0) | 2022.05.03 |
[CodeUp_Java] Q1167 : 두 번째 수 (0) | 2022.05.03 |
[CodeUp_Java] Q1166 : 윤년 판별 (0) | 2022.04.29 |