www.acmicpc.net/problem/10950

백준 10950

import java.util.Scanner;
class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
    
        int T = sc.nextInt(); // 테스트 케이스의 개수가 T개 주어진다.
    
        for(int i = 0; i < T; i++){ // 각 줄에는 A와 B가 주어진다.
            int a = sc.nextInt(); // A
            int b = sc.nextInt(); // B
        
            System.out.println(a + b);
        }
    }
}

이번 문제는 2739 문제와 크게 다르지 않은 문제입니다.

 

다만 입력에 무엇을 요구하는지 정확히 판단하는 것이 중요합니다.

 

A와 B 뿐 아니라 테스트 케이스의 개수인 T를 포함한 변수 3개를 만들어야 한다는 것을 놓치지 않아야 합니다.

 

추가적으로 보통 for문 초기화식은 두 가지 이유로 변수의 값을 0으로 지정합니다.

 

첫 번째는 배열의 인덱스가 0부터 시작하기 때문입니다.

 

두 번째는 직관적으로 판단하기 쉽기 때문입니다.

 

이해를 돕기 위해서 예를 들어보겠습니다.

 

우리는 'i' 10개를 표현하고 싶습니다.

 

그것을 표현하기 위한 방법으로 1) int i = 1; i <= 102) int i = 0; i < 10 두 가지가 있습니다.

 

1), 2) 식 모두 10입니다.

 

하지만 보통 조건식에서는 '<=' 연산자 대신에 '<' 연산자를 씁니다.

(한 글자라도 더 적게 쓰기 위함입니다.)

 

아무튼 만약 '<' 연산자를 사용하지 않고 10을 표현하기 위해서는 int i = 1; i < 11로 표현해야 합니다.

 

하지만 이 과정에는 '-1'을 하는 연산을 추가적으로 해야 합니다.

 

그래서 우리는 이 과정을 생략하고 직관적으로 판단하기 위해서 i = 0; i < 10을 사용합니다.

 

결국은 배열의 인덱스가 0부터 시작하기 때문에 이런 방식을 사용한다고 생각하셔도 무방합니다.