[SW Expert] #1206 S/W 문제해결 기본 1일차 - View :: 잡다한 프로그래밍
반응형
링크
 

SW Expert Academy

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

swexpertacademy.com


1) 해결방법

배열로 입력값을 입력받은 후 양옆 두 칸 총 4칸 중 현재 칸보다 값이 크면 PASS, 값이 작다면 두 개의 차이 값을 구하여 가장 작은 차이 값이 View가 되는 값이라고 생각하였고 이를 코드로 구현하였다.


2) 코드

#include "pch.h"
#include <iostream>
#include <algorithm>

int main()
{
//10번 입력값을 받음
	for (int j = 0; j < 10; j++) {
		int input = 0;
		int result = 0;
		std::cin >> input;
		int array[1000] = { 0 };

		for (int i = 0; i < input; i++) {
			std::cin >> array[i];
		}
//3번째부터 마지막2칸을 제외한 97번째 까지 진행
		for (int i = 2; i < input - 2; i++) {
			int min = 9999;
			int minary[4] = { 0 };
            //현재값보다 양옆의 값이 더 크다면 continue
			if (array[i] <= array[i - 2] || array[i] <= array[i - 1] || array[i] <= array[i + 1] || array[i] <= array[i + 2]) {
				continue;
			}
			else {
				minary[0] = array[i] - array[i - 2];
				minary[1] = array[i] - array[i - 1];
				minary[2] = array[i] - array[i + 1];
				minary[3] = array[i] - array[i + 2];
				for (int i = 0; i < 4; i++) {
					min = std::min(min, minary[i]); //최소값 구함
				}
				result = result + min;
			}
		}
		std::cout << "#" << j + 1 << " " << result << std::endl;
	}

	return 0;
}
반응형

+ Recent posts