이 문제에서는 숫자 N이 주어집니다. 우리의 임무는 주어진 숫자의 기울기를 찾는 것입니다. .
숫자의 기울기 숫자의 최대 및 최소 자릿수의 총 수입니다.
최대 자릿수 두 이웃(이전 및 다음)이 더 작은 숫자입니다.
최대 자릿수 두 이웃(이전 및 다음)이 더 큰 숫자입니다.
문제를 이해하기 위해 예를 들어보겠습니다.
입력
N = 9594459
출력
2
솔루션 접근 방식
이 문제에 대한 간단한 해결책은 첫 번째와 마지막(최대 또는 최소 형식으로 계산하지 않음)을 제외하고 숫자를 한 자릿수로 순회하는 것입니다. 이제 각 숫자에 대해 숫자가 앞뒤의 숫자보다 크거나 작은지 확인합니다. 마지막으로 최대 및 최소 개수를 반환합니다.
예시
솔루션 작동을 설명하는 프로그램
#include <iostream> using namespace std; int findNumberSlope(string N, int len){ int slope = 0; for (int i = 1; i < len - 1; i++) { if (N[i] > N[i - 1] && N[i] > N[i + 1]) slope++; else if (N[i] < N[i - 1] && N[i] < N[i + 1]) slope++; } return slope; } int main(){ string N = "574473434329"; int len = N.size(); cout<<" The slope of the given number is "<<findNumberSlope(N, len); return 0; }
출력
The slope of the given number is 7