편집 기록

편집 기록
  • 프로필 편집요청빌런님의 편집
    날짜2022.12.29

    자료구조 다항식의 덧셈을 자바로 바꾸는 문제. delTerm 같은 함수들 활용법


    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())과 동일
      }
    }
    
  • 프로필 joshua4885님의 편집
    날짜2022.12.29

    자료구조 다항식의 덧셈을 자바로 바꾸는 문제. delTerm 같은 함수들 활용법


    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())과 동일
    }
    

    }