728x90
🔗 문제 링크
https://www.acmicpc.net/problem/9654
📌 문제 개요
주어진 함대 데이터를 표 형태로 출력하는 문제
각 컬럼은 정해진 너비에 맞게 출력해야 하며, 공백 및 정렬이 매우 중요한 출력 문제
📌 접근 방법
이 문제는 로직이 필요한 문제가 아니라
출력 포맷을 정확히 맞추는 것이 핵심이다.
- System.out.printf() 사용
- %-ns 형식을 활용하여 왼쪽 정렬
- 각 컬럼의 폭을 정확히 맞춤
📌 핵심 아이디어
- 단순 println으로 출력하면 공백이 맞지 않아 오답 발생
- 반드시 고정 폭 출력 (printf) 사용해야 함
- 각 컬럼 폭:
- SHIP NAME → 15칸
- CLASS → 15칸
- DEPLOYMENT → 11칸
- IN SERVICE → 10칸
📌 전체 코드
public class Main {
public static void main(String[] args) {
System.out.printf("%-15s%-15s%-11s%-10s%n", "SHIP NAME", "CLASS", "DEPLOYMENT", "IN SERVICE");
System.out.printf("%-15s%-15s%-11s%-10d%n", "N2 Bomber", "Heavy Fighter", "Limited", 21);
System.out.printf("%-15s%-15s%-11s%-10d%n", "J-Type 327", "Light Combat", "Unlimited", 1);
System.out.printf("%-15s%-15s%-11s%-10d%n", "NX Cruiser", "Medium Fighter", "Limited", 18);
System.out.printf("%-15s%-15s%-11s%-10d%n", "N1 Starfighter", "Medium Fighter", "Unlimited", 25);
System.out.printf("%-15s%-15s%-11s%-10d%n", "Royal Cruiser", "Light Combat", "Limited", 4);
}
}
📄 정리
- 출력 문제는 공백까지 포함해서 완벽히 일치해야 한다
- 표 형태 문제는 printf를 활용하면 안정적으로 해결 가능
- 빠르게 풀려면 그냥 외우는 것도 방법
728x90
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
| 프로그래머스 스타 수열 JAVA 풀이 (그리디, 시간복잡도) (0) | 2026.05.04 |
|---|---|
| 백준 9461번 : 파도반 수열 (JAVA) (0) | 2026.04.27 |
| 백준 [2851] 슈퍼 마리오 JAVA 풀이 (브루트포스, 누적합) (0) | 2026.04.25 |
| 백준 4008 특공대 JAVA 풀이 (DP, CHT, 누적합, 시간복잡도) (0) | 2026.04.24 |
| 백준 11444 피보나치 수 6 JAVA 풀이 (행렬 거듭제곱, 분할정복, 시간복잡도) (0) | 2026.04.24 |