[1541번] 잃어버린 괄호 ( split( ) )

알쓸코딩·2023년 11월 29일
0

코테 문제들

목록 보기
22/113

이 문제는 '-'로 문자열을 한 번 나눈 후, 나눈 문자열을 한 번더 '+'로 나누어 +끼리 모두 더한 후 - 연산을 실행하면 된다.


✅ + 기호

String 문자열을 '+' 기호로 나누고 싶을 때,

java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0 +

위와 같은 오류가 발생했다.

이 오류는 '+' 가 특별한 의미로 쓰이기 때문이므로 '\+'로 바꿔줘야 한다.
'+' 기호 말고도 '*' 과 '^' 으로 나눌 때도 마찬가지이다.


✅ 코드

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

public class Main {
	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str = br.readLine();
		String[] strArr = str.split("-");

		int answer = 0;
		for (String s : strArr) {
			if (s == strArr[0]) {
				answer += findSum(s);
			} else {
				answer -= findSum(s);
			}
		}
		System.out.println(answer);
	}

	private static int findSum(String s) {
		String[] num = s.split("\\+");
		int sum = 0;
		for (String n : num) {
			sum += Integer.parseInt(n);
		}
		return sum;
	}

}

✅ 2회차 코드

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


public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String s[] = br.readLine().split("-");

		int result = 0;

		for (int i = 0; i < s.length; i++) {
			if (i == 0) {
				result = findSum(s[i]);
			} else {
				result -= findSum(s[i]);
			}
		}
		System.out.println(result);
	}

	private static int findSum(String s) {

		int sum = 0;
		String ss[] = s.split("\\+");
		for (int i = 0; i < ss.length; i++) {
			sum += Integer.parseInt(ss[i]);
		}
		return sum;
	}


}

profile
알면 쓸데있는 코딩 모음!

0개의 댓글