※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 15725번 문제인 다항함수의 미분이다.
문제는 아래 링크를 확인하자.

https://www.acmicpc.net/problem/15725 

 

15725번: 다항함수의 미분

첫째 줄에 최대 일차 일변수 다항식이 주어진다. 항의 개수는 최대 2개이고, 변수는 항상 x로 주어지며, 각 항은 공백 문자로 구분되지 않는다. 주어지는 계수와 상수의 절댓값은 10,000을 넘지 않

www.acmicpc.net

일차 이하의 다항식을 미분하면 일차항의 계수만이 남는다는 점을 이용해 문제를 해결하자.

 

먼저, 주어지는 다항식에 'x'가 존재하지 않는다면 0을 출력한다.

 

x를 발견했다면 문제 조건(다항식은 차수가 큰 것부터 작아지는 순서대로 주어진다)에 의해 x 앞의 문자열은 x의 계수만을 의미한다.

 

이 문자열이 "+"거나 "-"라면 각각 1 또는 -1을 출력하고, 그렇지 않다면 해당 계수를 stoi함수를 이용하여 정수로 출력하는 것으로 문제를 해결할 수 있다.

 

아래는 제출한 소스코드이다.

#include <iostream>
#include <string>
using namespace std;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	int xidx = -1;
	string s; cin >> s;
	int slen = s.length();
	for (int i = 0; i < slen; i++) {
		if (s[i] == 'x') xidx = i;
	}
	if (xidx < 0) cout << 0;
	else {
		if (xidx == 0) cout << 1;
		else if (s[xidx - 1] == '+') cout << 1;
		else if (s[xidx - 1] == '-') cout << -1;
		else cout << stoi(s.substr(0, xidx));
	}
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 14728 // C++] 벼락치기  (0) 2022.06.26
[BOJ 11368 // C++] A Serious Reading Problem  (0) 2022.06.26
[BOJ 15735 // C++] 삼각  (0) 2022.06.26
[BOJ 15736 // C++] 청기 백기  (0) 2022.06.25
[BOJ 15739 // C++] 매직스퀘어  (0) 2022.06.24

+ Recent posts