반응형
안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1168 : 나이 계산 1 (자바, JAVA)입니다.
intro
Question
문제 설명
입력
생년월일(6자리)과 성별정보(1자리)가 공백으로 분리되어 정수로 주어진다.
출력
2012년도에 현재 나이를 출력하시오.
예시
- 입력 : 790101 1
- 출력 : 34
Solution (풀이)
- 풀이 1 : 메모리 11252, 시간 95
public class Answer1 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// 주민등록번호를 입력받는다.
int frontNo = Integer.parseInt(st.nextToken());
int backNo = Integer.parseInt(st.nextToken());
// 현재 년도
int now = 2012;
// 나이
int age = 0;
if (backNo==1 || backNo==2) { // 1900년대생
frontNo = frontNo/10000+1900; // 몫에서 해당 년대를 더한다.
} else { // 2000년대생
frontNo = frontNo/10000+2000;
}
// 나이는 현재년도 - 태어난년도 +1
age = now - frontNo+1;
bw.append(String.valueOf(age));
bw.flush();
br.close();
bw.close();
}
}
- 풀이 2 : 메모리 11168, 시간 65
public class Answer2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
// 주민등록번호를 입력받는다.
int frontNo = Integer.parseInt(st.nextToken());
int backNo = Integer.parseInt(st.nextToken());
// 현재 년도
int now = 2012;
// 나이
int age = 0;
if (backNo==1 || backNo==2) { // 1900년대생
frontNo = frontNo/10000+1900; // 몫에서 해당 년대를 더한다.
} else { // 2000년대생
frontNo = frontNo/10000+2000;
}
// 나이는 현재년도 - 태어난년도 +1
age = now - frontNo+1;
System.out.print(age);
}
}
메모리와 시간을 확인해보면 알 수 있듯이, 출력해야하는 데이터가 단순하거나 하나일 때에는 굳이 다른 클래스를 이용하여 출력하는 것 보다 바로 그 값을 출력하는 것이 훨신 속도에 도움이 된다.
System.out.println(); 메소드보다 System.out.print();가 속도적인 측면에서는 더 낫기 떄문에 굳이 줄바꿈을 할 필요가 없다면 구분해서 사용하도록 하자.
Ranking(순위)
반응형
'Algorithm > CodeUp' 카테고리의 다른 글
[CodeUp_Java] Q1170 : 당신의 학번은? 1 (0) | 2022.05.03 |
---|---|
[CodeUp_Java] Q1169 : 나이 계산 2 (0) | 2022.05.03 |
[CodeUp_Java] Q1167 : 두 번째 수 (0) | 2022.05.03 |
[CodeUp_Java] Q1166 : 윤년 판별 (0) | 2022.04.29 |
[CodeUp_Java] Q1165 : 축구의 신1 (0) | 2022.04.29 |