import java.io.*;
import java.util.Scanner;
class Polynomial {
private int[][] term;
private int curNoTerm = 0;
*우선 term이 2차원 배열이긴 하네요.noTerm이 행을, 2가 열의 개수가 됩니다. 그런데 여기서 밑에 coef는 계수, exp는 지수에 해당합니다. 결국에는 이 지수와 계수 정보를 통해 덧셈을 할 것으로 보이는데요.*
// @param noTerm 항의 개수
public Polynomial(int noTerm) {
term = new int[noTerm][2];
}
public Polynomial() {
this(20); // default로 최대 20개의 항을 저장함
}
/**
* @param coef 계수
* @param exp 지수
*/
public void addTerm(int coef, int exp) {
term[curNoTerm][0] = exp; //
term[curNoTerm][1] = coef;
curNoTerm++;
}
// @param exp
// 작성하시오
public void delTerm(int exp) {
***그런데 여기 부분이 delTerm이 지수부분을 이용해서 뭘 삭제한다는데요, 교안에 따르면 계산이 끝나면 p1,p2에 있는 부분을 지우고 p3에 모두 복사해 놓으려고 하는 것으로 보이는데 어떻게 이 부분을 활용할지 모르겠습니다. 맨 밑에 polynomial p3가 있긴 있습니다.***
}
/**
* 출력할 때 사용
* @return 객체를 문자열로 반환 (예: 3x^15+2x^3+4x^2+x+5 )
* 작성하시오.
*/
public String toString() {
return null;
}
/**
* 두 개의 다항식을 더한다.
* @param p1 첫번째 다항식
* @param p2 두번째 다항식
* @return 두 개의 다항식을 더한 결과
* 작성할 것
*/
public static Polynomial polyAdd(Polynomial p1, Polynomial p2) {
// p1과 p2가 같은차수일 경우 계수를 더한다.
return null;
}
}
class Main {
public static void main(String[] args) throws Exception {
Scanner s = new Scanner(System.in);
// 첫번째 다항식 입력
Polynomial p1 = new Polynomial();
int no = s.nextInt();
for(int i = 0; i < noTerm; i++) {
int coef = scan.nextInt();
int exp = scan.nextInt();
p1.addTerm(coef, exp);
}
Polynomial p2 = new Polynomial();
// 두번째 다항식 입력 코드 여기에 작성할 것
for(int i = 0; i < noTerm; i++) {
int coef = s.nextInt();
int exp = s.nextInt();
p2.addTerm(coef, exp);
}
******우선 여기서 p1과 p2가 coef, exp를 입력받아 위의 2차원 배열형태로 저장됩니다. 그런데 이 배열들을 프린트 하려면 어떻게 하면 되나요. System.out.print(p2.addTerm(coef,exp)) 를 쓰면 되나요?******
// 두개의 다항식 덧셈
Polynomial p3 = Polynomial.polyAdd(p1, p2);
System.out.print(p3); // 이것은 System.out.print(p3.toString())과 동일
}
}