본문 바로가기
Algorithm/CodeUp

[Java] codeup 1019

by dani0312 2023. 5. 4.

[기초-입출력] 연월일 입력받아 그대로 출력하기

 

문제 설명

년, 월, 일을 입력받아 지정된 형식으로 출력하는 연습을 해보자.

 

입력

연, 월, 일이 ".(닷)"으로 구분되어 입력된다.

ex) 2013.8.5

 

출력

입력받은 연, 월, 일을 yyyy.mm.dd 형식으로 출력한다.
(%02d를 사용하면 2칸을 사용해 출력하는데, 한 자리 수인 경우 앞에 0을 붙여 출력한다.)

ex)2013.08.05

 

풀이

이 문제의 풀이 포인트는 다음과 같다.

 

1. 문자열.split() 메서드

split()는 이전 포스팅 codeup1018에서 다루었다. 

https://dani0312.tistory.com/11

 

[Java] codeup 1018

[기초-입출력] 시간 입력받아 그대로 출력하기 문제 설명 어떤 형식에 맞추어 시간이 입력될 때, 그대로 출력하는 연습을 해보자 입력예시 3:16 출력예시 3:16 풀이 방법1. sc.next()만을 이용하여 풀

dani0312.tistory.com

문자열(string)을 특정 구분자를 기준으로 나누어 문자열 배열(String[])로 반환하는 메소드이다. 여기에서는 "."(점)을 기준으로 구분하여 값을 dateArr배열에 저장한다. 위의 입력예시인 "2013.8.5"를 예로 든다면 2013,8,5 이 3개의 값이 각각 인덱스에 저장된다. 

 

2. 서식 문자열

4자리를 채우기

%04d : 4자리를 맞추고 빈 곳은 0으로 채움 (오른쪽부터 채움)

%02d : 2자리를 맞추고 빈 곳은 0으로 채움 (오른쪽부터 채움)

출력예시를 보면 2013.08.05 로 빈 곳은 0으로 채워져있기 때문에 위와 같이 작성해야한다. 

(만일 0을 붙이지 않고 %2d와 같이 작성한다면 2보다 작으면 왼쪽부터 채워 정렬하고 0이 아닌 빈 곳으로 둔다. 예를 들어 12와 2를 두 줄로 %2d로 표현하였다면 아래와 같다.)

 12

   2

 

 

3. Integer.parseInt() 메서드

Integer.parseInt(String s) : 숫자형의 문자열 -> 10진수의 int 형으로 반환해준다.

int angle = Integer.parseInt("1004"));

 

Integer.pareseInt(String s, int radix) : 숫자형의 문자열을 첫번째 인자 값으로 받고 변환할 진수값을 입력하면 해당 진수에 맞춰 int 형으로 반환하여 준다. 

Integer.parseInt("1004",8);
Integer.parseInt("1004",16);

이와 같이 콤마 다음에 원하는 진수를 넣어주면 8진수면 8진수의 int값을 반환하여준다.

 

1019문제에서는 dateArr[0]에 문자열로 날짜의 정보가 들어가있다. (ex "2018") 그러므로 Integer.parseInt(dateArr[0])와 같이 문자열을 매개변수로 넣으면 int형의 2018의 값을 얻을 수 있다. 

import java.util.Scanner;
public class CodeUp1019 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String date = sc.next();

        String[] dateArr = date.split("\\.");

        System.out.printf("%04d.%02d.%02d",Integer.parseInt(dateArr[0]),Integer.parseInt(dateArr[1]),Integer.parseInt(dateArr[2]));
    }
}

 

결과

 

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

[Java] codeup 1020 2가지 풀이  (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

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