본문 바로가기

알고리즘/SW Expert Academy

200923 [SW Expert Academy] 지그재그 숫자 1986번(C++)

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PxmBqAe8DFAUq&categoryId=AV5PxmBqAe8DFAUq&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

#include<iostream>

using namespace std;

int main(int argc, char** argv)
{
	int test_case;
	int T;
	cin>>T;
	
	for(test_case = 1; test_case <= T; ++test_case)
	{
		int N;
        	int result = 0;
		cin >> N;
        
		if( N%2 == 0 ) result=-(N/2);
		else result=(N/2)+1;
        	cout << "#" << test_case << " " << result << endl;

	}
	return 0;
}

문제 : 1부터 N까지의 숫자에서 홀수는 더하고 짝수는 뺐을 때 최종 누적된 값 구하기

코드 : 홀수 N을 받으면 result에 N만큼 더하고, 짝수 N을 받으면 result에 N만큼을 빼는 코드를 생각했는데, 제출해보니 코드가 오류가 나왔습니다. 그래서 result에 N만큼 더하는 것이 아닌, N이 홀수 / 짝수냐에 따라서 result 값 자체가 바뀌는 코드를 작성했습니다. 그 과정에서 밑에 있는 사이트를 참고했습니다.

 

 

"주어진 숫자가 짝수이면 해당 숫자의 1/2의 음수 값이다. 홀수이면 해당 숫자의 1/2에 1을 더한 값이 정답이다."

출처: https://coooding.tistory.com/20 [아직은 정체성이 없는 블로그]

 

[SWEA][D2][c++] 1986. 지그재그 숫자

문제 1986. 지그재그 숫자 문제 링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PxmBqAe8DFAUq&categoryId=AV5PxmBqAe8DFAUq&categoryType=CODE SW Expert Academy SW 프..

coooding.tistory.com