문제

정답
import.java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.printf("%d + %d = %d", a, b, a + b);
}
}
개념설명
1. import.java.util.Scanner;
import.java.util.Scanner;
✔️ 의미
- Scanner 클래스를 사용하겠다고 선언
- 키보드 입력을 받기 위해 필요
2. 클래스 선언
public class Solution {
✔️ 의미
- Solution 이라는 클래스 정의
- 자바 프로그램은 반드시 클래스 내부에서 실행
3. main 메서드 (프로그램 시작점)
public static void main(String[] args) {
✔️ 의미
- 프로그램 실행 시 가장 먼저 호출되는 메서드
| 요소 | 의미 |
| public | JVM 접근 허용 |
| static | 객체 생성 없이 실행 |
| void | 반환값 없음 |
| main | 고정 이름 |
| String[] args | 실행 인자 |
4. Scanner 객체 생성
Scanner sc = new Scanner(System.in);
✔️ 의미
- 키보드 입력을 받을 준비
5. 첫 번째 정수 입력
int a = sc.nextInt();
✔️ 의미
- 키보드로 입력한 값을 정수(int)로 받아
- 변수 a에 저장
6. 두 번째 정수 입력
int b = sc.nextInt();
✔️ 의미
- 또 하나의 정수를 입력 받아
- 변수 b에 저장
7. System.out.printf() (포맷 출력)
System.out.printf("%d + %d = %d", a, b, a + b);
8. printf란?
System.out.printf(형식문자열. 값들...);
✔️ 의미
- 형식(format)을 지정해서 출력
- C언어의 printf와 동일한 방식
- print / println보다 출력 형식을 깔끔하게 만들기 좋음
9. 형식 문자열 (Format String)
"%d + %d = %d"
✔️ 의미
- 출력될 문 구조를 미리 정의
| 기호 | 의미 |
| %d | 정수(int) |
- 문자열 안의 %d 개수 = 뒤에 오는 값 개수
10. 값 목록
a, b, a + b
✔️ 의미
- 형식 문자열의 %d 자리에
- 순서대로 들어갈 값들
✔️ 매칭 순서
첫 번째 %d → a
두 번째 %d → b
세 번째 %d → a + b
🔚 전체 실행 흐름 요약
- 프로그램 시작
- Scanner 생성
- 정수 두 개 입력
- 덧셈 수행
- 포맷에 맞게 출력
💡 자주 쓰는 포맷 지정자 정리표
| 포맷 | 의미 |
| %d | 정수 |
| %f | 실수 |
| %s | 문자열 |
| %c | 문자 |
| \n | 줄바꿈 |
'컴퓨터 > 프로그래머스' 카테고리의 다른 글
| [Java] 프로그래머스 코딩테스트 연습 / 문자열 돌리기 (0) | 2026.01.18 |
|---|---|
| [Java] 프로그래머스 코딩테스트 연습 / 문자열 붙여서 출력하기 (1) | 2026.01.17 |
| [Java] 프로그래머스 코딩테스트 연습 / 특수문자 출력하기 (0) | 2026.01.17 |
| [Java] 프로그래머스 코딩테스트 연습 / 대소문자 바꿔서 출력하기 (0) | 2026.01.16 |
| [Java] 프로그래머스 코딩테스트 연습 / 문자열 반복해서 출력하기 (0) | 2026.01.15 |