CodeWars 세 번째 문제

Updated:

Human Readable Time

public class HumanReadableTime {
  public static String makeReadable(int seconds) {
    // 1분에 60초
    // 1시간에 3600초
    
    if(359999 < seconds) {
      return "99:59:59";
    }
    
    int hour = seconds/3600;
    int min = (seconds%3600)/60;
    int sec = (seconds%3600)%60;
    
    return String.format("%02d:%02d:%02d", hour, min, sec);
  }
}

*String format 형식

String클래스의 format 메소드는 지정된 위치에 값을 대입해서 문자열을 만들어 내는 용도로 사용

[String format문 형식]

%[[argument_index$]][flags][width]conversion

%와 conversion은 필수 항목이지만 대괄호로 되어있는[[argument_index$]][flags][width] 부분은 생략 가능

즉, %conversion 형식으로 사용할 수 있고 나머지 부분은 옵션

conversoin위치에는 출력되는 데이터의 타입을 입력 : s(문자열), d(정수), x(16진수), o(8진수), f(실수)

%는 필수이므로 코드는 %s, %d, %x, %o, %f로 사용됩니다

예시)

System.out.println("12345678901234567890");
// 길이를 10으로 지정 (width 옵션)
System.out.println(String.format("%10s%10s", "KOREA", "JAPAN"));
// 길이를 10으로 지정 (width + argument_index 옵션)
System.out.println(String.format("%2$10s%1$10s", "KOREA", "JAPAN"));
System.out.println(String.format("%-10s%-10s", "KOREA", "JAPAN"));
System.out.println(String.format("%2$10d%1$10d", 12345, 67890));
System.out.println(String.format("%+10d%+10d", 100, -200));
System.out.println(String.format("%+010d%+010d", 100, -200));
System.out.println(String.format("%10.2f%10.2f", 100000.999f, 200000.999f));
System.out.println(String.format("%10X%10X", 2047, 2047));
12345678901234567890
     KOREA     JAPAN
     JAPAN     KOREA
KOREA     JAPAN     
67890     12345
      +100      -200
+000000100-000000200
 100001.00 200001.00
       7ff       7ff