hackkerrank 알고리즘 문제 답이 왜 이건지 설명해 주실 분 있나요?
조회수 740회
https://www.hackerrank.com/challenges/java-output-formatting/problem 문제 링크는 위입니다.
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("================================");
for(int i=0;i<3;i++){
String s1=sc.next();
int x=sc.nextInt();
System.out.printf("%-15s%03d\n", s1, x);
}
System.out.println("================================");
}
}
저거 중에서 이 부분이 답인데.. 이 코드를 뭐 어캐 해석해야 하나요..? 이거 말고 다른 직관적인 답은 없는 건아요?
System.out.printf("%-15s%03d\n", s1, x);
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
%-15s%03d
의 의미는 15자리수 만큼 유지하라는 것이고 03d 는 주어진 변수가 3자리 미만이면 0으로 채우라(padding)는 겁니다.
System.out.println(String.format("%-15s%03d", "abcdefghi", 5)) abcdefghi 005
템플릿보다 더 효율적인 방법은 없을 것 같습니다.
물론 직관적인 방법이 있긴 있습니다.
s1의 길이를 알아내서 15이 안되면 15가 될 때까지 공백을 넣어주면 되고 마찬가지고 x의 길이가 3이 안되면 0으로 채워주면 됩니다.
저런 작업을 할바에 String format 의 규칙을 보고 사용하는 편이 훨씬 낫습니다.
https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html
댓글 입력