www.acmicpc.net/problem/8393

백준 8393

import java.util.Scanner;
class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        int sum = 0;
        for(int i = 1; i <= n; i++){
            sum += i; // sum에 i를 더한다.
        } // for문
        System.out.println(sum);
        sc.close();
    } // main
} // Main class



// 공식을 안다면 사용할 수 있는 방법, 추천하지는 않습니다.
for( int i = 1; i <= n; i++){ }
System.out.println( ( n * ( n + 1) ) / 2);

이번 문제는 대입 연산자를 아는지 묻는 문제라고 생각합니다.

[대입 연산자]

대입 연산자의 진행방향은 오른쪽에서 왼쪽으로 진행됩니다.

 

그래서 오른쪽 항의 값이 왼쪽 항의 변수에 저장됩니다.

 

대입 연산자는 [변수] [대입 연산자] [리터럴 및 변수, 다른 연산식] 방식으로 사용합니다.

 

연산자의 종류에는 오른쪽 항의 값을 왼쪽 변수에 저장하는 단순 대입 연산자인 ' = '가 있고,

 

정해진 연산을 먼저 수행한 후 결과를 변수에 저장하는 복합 대입 연산자도 있습니다.

 

쉽게 말해서 복합 대입 연산자는 [산술 연산자 + ' = ' ] 이라고 생각하시면 됩니다.

 

이해를 돕기 위해 복합 대입 연산자에 대한 예를 보여드리겠습니다.

a = 3, b = 2, c = 1

a += b += c

b = b + c // b = 2 + 1 -> b = 3

a = a + b // a = 3 + 3 -> a = 6

// 최종 결과
a = 6
b = 3
c = 1

1) a += ( b = b + c ) / a += (b = 2(b) + 1(c) ) // b = 3

 

2) a = a + b( a = 3(a) + 3(b) ) // a = 6

 

결과적으로 a = 6, b = 3, c = 1의 값이 나옵니다.