반응형
안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1171 : 당신의 학번은? 2 (자바, JAVA)입니다.
intro
Question
문제 설명
입력
학년, 반, 번호가 공백을 기준으로 입력으로 주어진다. (정수)
입력범위:
학년 : 3이하 , 반, 6이하, 번호, 30이하
출력
출생년도 뒤의 두자리와 연도정보(1이면 1900년대, 3이면 2000년대)를 출력한다.
(단, 출생년도 뒤 2자리가 10보다 작을 경우10의자리에 0은 붙이지 않고 출력한다.)
학번을 붙여서 출력한다. 번호가 10번 미만일때는 0을 붙여 출력한다.
예시
- 입력 : 3 1 2
- 출력 : 3102
Solution (풀이)
- 풀이 1 : 메모리 11252, 시간 104
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));
// 순서대로 입력 될 학년은 바로 더해준다.
bw.append(st.nextToken());
String classes = st.nextToken();
String number = st.nextToken();
if (classes.length()<2) { // 자리수가 2자리보다 낮으면 앞에 0 붙이기
bw.append("0" + classes);
} else { // 자리수가 2자리이면 그대로 저장
bw.append(classes);
}
if (number.length()<3) { // 번호의 자리수가 3보다 낮으면
for (int i=0; i<3-number.length(); i++) { //낮은만큼 for문 돌리기
bw.append("0");
}
}
bw.append(number);
bw.flush();
br.close();
bw.close();
}
}
- 풀이 2 : 메모리 11156, 시간 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(), " ");
StringBuilder sb = new StringBuilder();
// 순서대로 입력 될 학년은 바로 더해준다.
sb.append(st.nextToken());
String classes = st.nextToken();
String number = st.nextToken();
if (classes.length()<2) { // 자리수가 2자리보다 낮으면 앞에 0 붙이기
sb.append("0" + classes);
} else { // 자리수가 2자리이면 그대로 저장
sb.append(classes);
}
if (number.length()<3) { // 번호의 자리수가 3보다 낮으면
for (int i=0; i<3-number.length(); i++) { //낮은만큼 for문 돌리기
sb.append("0");
}
}
sb.append(number);
System.out.print(sb);
}
}
BufferedWriter와 다르게 StringBuilder는 형식을 굳이 String 타입으로 맞추어 주지 않아도 append할 수 있다.
StringTokenizer를 통하여 번호를 입력 받을때 굳이 Integer타입으로 받지 않고 그 길이를 조건으로 조금더 캐팅하는 번거로움을 줄일 수 있다.
Ranking(순위)
반응형
'Algorithm > CodeUp' 카테고리의 다른 글
[CodeUp_Java] Q1173 : 30분 (0) | 2022.05.03 |
---|---|
[CodeUp_Java] Q1172 : 세 수 정렬하기 (0) | 2022.05.03 |
[CodeUp_Java] Q1170 : 당신의 학번은? 1 (0) | 2022.05.03 |
[CodeUp_Java] Q1169 : 나이 계산 2 (0) | 2022.05.03 |
[CodeUp_Java] Q1168 : 나이 계산 1 (0) | 2022.05.03 |