백준문제(1541)

·2025년 4월 23일

알고리즘문제

목록 보기
2/4


백준문제1541

풀이

  1. 가장 적은수를 구할려면 -는 부분을 가장큰 수를 만들어야한다
  2. 그럴려면 -로 문자열을 나눠 그안의 계산식을 묶어주면 된다고 생각했다

트러블슈팅

문제1. split 함수의 + 처리

문제 : split("+")의 컴파일 에러가 생겼다.
이유 : split() 메소드는 파라미터로 정규식을 입력 받는데 정규식에서 + 는 특수문자이다.
해결 :
1. 정규식에서 \뒤에오는 특수문자는 일반문자로 취급한다
2. 자바에서 \를 표현하기 위해선 앞에 \를 붙여야한다
3. 위 조건 두개를 확인하여 \+로 처리하였다

split("\\+");

내 코드

package problem.p1541;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("계산식입력 : ");
        String expression = sc.nextLine();

        String[] expressions = expression.split("-");
        int[] results = new int[expressions.length];
        int result = 0;
        int index =0;
        for(String s : expressions){
            String[] temp = s.split("\\+");
            for(String i:temp){
                results[index] += Integer.parseInt(i);
            }
            if(index == 0){
                result = results[index];
            } else {
                result -= results[index];
            }
            index++;
        }
        System.out.print("결과 : ");
        System.out.println(result);
    }
}
profile
진입니다.

0개의 댓글