본문 바로가기
PS/BOJ

백준 15725 자바 - 다항함수의 미분 (BOJ 15725 JAVA)

by Nahwasa 2021. 11. 24.

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

 

  

  문자열 파싱 문제이다. 다음의 경우에 대해서 case work를 진행하면 쉽게 풀 수 있다.

 

1. x+n, n+x와 같은 형태(n은 아예 없이 "x"와 같은 경우도 포함) -> 1 출력

 

2. -x+n, n-x와 같은 형태 -> -1 출력

 

3. x없이 n과 같은 형태 -> 1차항이 아예 없으므로 0 (아마 여기서 많이들 틀릴 듯)

 

4. ax+n, n+ax의 형태 -> a

 

5. -ax+n, n-ax의 형태 -> -a

 

적절히 위의 모든 경우를 찾아내면 된다.

 

 

코드 : https://github.com/NaHwaSa/BOJ_BaekjunOnlineJudge/blob/master/15700/BOJ_15725.java

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
    private void solution() throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        int answer = 10001;

        if (s.charAt(0)=='x') {
            answer = 1;
        } else if (s.charAt(0)=='-' && s.charAt(1)=='x') {
            answer = -1;
        } else if (s.indexOf('x') == -1) {
            answer = 0;
        }

        if (answer != 10001) {
            System.out.println(answer);
            return;
        }

        int x = s.indexOf('x');
        String ans = "";
        for (int i = x-1; i >= 0; i--) {
            if (s.charAt(i) == '+' || s.charAt(i) == '-') {
                ans = s.charAt(i) + ans;
                break;
            }
            ans = s.charAt(i) + ans;
        }
        System.out.println(ans);
    }

    public static void main(String[] args) throws Exception {
        new Main().solution();
    }
}

댓글