728x90
반응형
SMALL

문제 설명

한 개 이상의 항의 합으로 이루어진 식을 다항식이라고 합니다. 다항식을 계산할 때는 동류항끼리 계산해 정리합니다. 덧셈으로 이루어진 다항식 polynomial이 매개변수로 주어질 때, 동류항끼리 더한 결괏값을 문자열로 return 하도록 solution 함수를 완성해보세요. 같은 식이라면 가장 짧은 수식을 return 합니다.


제한사항

  • 0 < polynomial에 있는 수 < 100
  • polynomial에 변수는 'x'만 존재합니다.
  • polynomial은 0부터 9까지의 정수, 공백, ‘x’, ‘+'로 이루어져 있습니다.
  • 항과 연산기호 사이에는 항상 공백이 존재합니다.
  • 공백은 연속되지 않으며 시작이나 끝에는 공백이 없습니다.
  • 하나의 항에서 변수가 숫자 앞에 오는 경우는 없습니다.
  • " + 3xx + + x7 + "와 같은 잘못된 입력은 주어지지 않습니다.
  • "012x + 001"처럼 0을 제외하고는 0으로 시작하는 수는 없습니다.
  • 문자와 숫자 사이의 곱하기는 생략합니다.
  • polynomial에는 일차 항과 상수항만 존재합니다.
  • 계수 1은 생략합니다.
  • 결괏값에 상수항은 마지막에 둡니다.
  • 0 < polynomial의 길이 < 50

입출력 예

polynomial result

"3x + 7 + x" "4x + 7"
"x + x + x" "3x"

입출력 예 설명

입출력 예 #1

  • "3x + 7 + x"에서 동류항끼리 더하면 "4x + 7"입니다.

입출력 예 #2

  • "x + x + x"에서 동류항끼리 더하면 "3x"입니다.
class Solution {
    public String solution(String polynomial) {
        String answer = "";
        String[] arr = polynomial.split(" +");
        int strNum = 0;
        int num = 0;

        for (String s : arr) {
            if (s.equals("x")) {
                strNum += 1;
            } else if (s.contains("x")) {
                strNum += Integer.parseInt(s.substring(0, s.length() - 1));
            } else if (!s.equals("+")) {
                num += Integer.parseInt(s);
            }
        }

        if (strNum != 0 && num == 0) {
            if (strNum == 1) {
                answer = "x";
            } else {
                answer = strNum + "x";
            }
        } 

        if (strNum != 0 && num != 0) {
            if (strNum == 1) {
                answer = "x" + " + " + num;
            } else {
                answer = strNum + "x" + " + " + num;
            }
        }

        if (strNum == 0 && num != 0) {
            answer = String.valueOf(num);
        }

        return answer;
    }
}
728x90
반응형
LIST

'알고리즘 > 프로그래머스 JAVA LV.0' 카테고리의 다른 글

k의 개수  (0) 2023.03.16
유한소수 판별하기  (0) 2023.03.15
7의 개수  (0) 2023.03.13
저주의 숫자 3  (0) 2023.03.12
연속된 수의 합  (0) 2023.03.11
728x90
반응형
SMALL

문제 설명

머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.


제한사항

  • 1 ≤ array의 길이 ≤ 100
  • 0 ≤ array의 원소 ≤ 100,000

입출력 예

array result

[7, 77, 17] 4
[10, 29] 0

입출력 예 설명

입출력 예 #1

  • [7, 77, 17]에는 7이 4개 있으므로 4를 return 합니다.

입출력 예 #2

  • [10, 29]에는 7이 없으므로 0을 return 합니다.

스트림으로 사용하기

문자열로 변환한 뒤에 숫자만 남도록 정규식을 짜고 한 단어씩 분리하여 필터링해서 7의 개수 세기

정규식 0부터 9까지 [^0-9]

package Lv0;

import java.util.Arrays;

public class H120912 {
    public static int solution(int[] array) {
        return (int) Arrays.stream(Arrays.toString(array).replaceAll("[^0-9]", "")
                        .split(""))
                .filter(i -> i.equals("7"))
                .count();
    }
    public static void main(String[] args){
        int[] array = {7, 77, 17};
        System.out.println(solution(array));
    }
}
728x90
반응형
LIST

'알고리즘 > 프로그래머스 JAVA LV.0' 카테고리의 다른 글

유한소수 판별하기  (0) 2023.03.15
다항식 더하기  (1) 2023.03.15
저주의 숫자 3  (0) 2023.03.12
연속된 수의 합  (0) 2023.03.11
직사각형 넓이 구하기  (0) 2023.03.10
728x90
반응형
SMALL

문제 설명

3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 3의 배수와 숫자 3을 사용하지 않습니다. 3x 마을 사람들의 숫자는 다음과 같습니다.

10진법 3x 마을에서 쓰는 숫자 10진법 3x 마을에서 쓰는 숫자

1 1 6 8
2 2 7 10
3 4 8 11
4 5 9 14
5 7 10 16

정수 n이 매개변수로 주어질 때, n을 3x 마을에서 사용하는 숫자로 바꿔 return하도록 solution 함수를 완성해주세요.


제한사항

  • 1 ≤ n ≤ 100

입출력 예

n result

15 25
40 76

입출력 예 설명

입출력 예 #1

  • 15를 3x 마을의 숫자로 변환하면 25입니다.

입출력 예 #2

  • 40을 3x 마을의 숫자로 변환하면 76입니다.

3의 배수 사용 안함

valueOf()

  • 메소드는 ()괄호 안의 해당 객체를 String 객체로 변환시키는 역활을 합니다. 말그대로 String의 객체로 형변환

contains()

  • boolean contains(CharSequence s)
  • contains() 함수는 대상 문자열에 특정 문자열이 포함되어 있는지 확인하는 함수이다.
  • 대/소문자를 구분한다.
package Lv0;

public class H120871 {
    public static int solution(int n) {
        int answer = n;
        // 1부터 시작
        int i = 1;
        while (i <= answer) {
            if ((i % 3 == 0) || String.valueOf(i).contains("3")) {
                answer++;
            }
            i++;
        }
        return answer;
    }
    public static void main(String[] args){
        int n = 15;
        System.out.println(solution(n));
    }
}
728x90
반응형
LIST

'알고리즘 > 프로그래머스 JAVA LV.0' 카테고리의 다른 글

다항식 더하기  (1) 2023.03.15
7의 개수  (0) 2023.03.13
연속된 수의 합  (0) 2023.03.11
직사각형 넓이 구하기  (0) 2023.03.10
숫자 찾기  (0) 2023.02.26

+ Recent posts