본문 바로가기
Algorithm/CodeUp

[Java] codeup 1020 2가지 풀이

by dani0312 2023. 5. 4.

[기초-입출력] 주민번호 입력받아 형태 바꿔 출력하기

 

문제 설명

주민번호는 다음과 같이 구성된다.

XXXXXX-XXXXXXX

앞의 6자리는 생년월일(yymmdd)이고 뒤 7자리는 성별, 지역, 오류검출코드이다.
주민번호를 입력받아 형태를 바꿔 출력해보자.

 

 

풀이

 

Scanner + System.out.printf() 풀이

코드 길이:328 byte(s) / 수행 시간:177 ms / 메모리 :14352 kb

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String residentNum = sc.next();
        String[] residentNumArr = residentNum.split("\\-");

        System.out.printf("%s%s",residentNumArr[0],residentNumArr[1]);
    }
}

 

 

 

 

 

BufferedReader + BufferedWrtier 풀이

코드 길이:412 byte(s) / 수행 시간:33 ms / 메모리 :11148 kb

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        String identity = br.readLine();
        bw.write(identity.replace("-",""));
        bw.flush();
        bw.close();
    }
}

 

 

위의 두 풀이를 비교하면 BufferedReader + BufferedWrtier를 사용하였을 때 코드는 더 길어지나 수행 시간이 훨씬 적게 걸리고, 메모리 또한 적게 차지함을 알 수 있다.

 

 

결과

'Algorithm > CodeUp' 카테고리의 다른 글

[Java] codeup 1019  (0) 2023.05.04
[Java] codeup 1018  (0) 2023.05.01
[Java] codeup 1015  (0) 2023.05.01
[Java] codeup 1010  (0) 2023.04.27
[Java] codeup 1008  (0) 2023.04.27

/* 내가 추가한 코드 */ /* 내가 추가한 코드 끝끝 */