새발블로그
[백준/Java] 1541 잃어버린 괄호 본문
문제
https://www.acmicpc.net/problem/1541
풀이방법
가장 큰 수를 빼야한다고 생각했다.
그러므로, ( ) - ( ) - ( ) 이렇게 최대한 크게크게 묶어야한다고 생각하였따
1. 1. \\+를 사용하는 이유
+는 정규 표현식에서 하나 이상의 문자을 의미하는 메타 문자로, 단순히 +를 사용하며 정규 표현식으로 인식된다.
그러므로 이스케이프 문자를 사용해 \\를 사용해야한다.
2. 문자열과 숫자 변환 관련 문법
문자열 -> 숫자
Integer.parseInt(String s):
문자열을 int로 변환한다.
예: int num = Integer.parseInt("123");
Integer.valueOf(String s):
문자열을 Integer 객체로 변환합니다.
예: Integer num = Integer.valueOf("123");
Double.parseDouble(String s):
문자열을 double로 변환한다.
예: double num = Double.parseDouble("123.45");
숫자-> 문자열
String.valueOf(int i):
int를 문자열로 변환한다.
예: String str = String.valueOf(123);
Integer.toString(int i):
int를 문자열로 변환한다.
예: String str = Integer.toString(123);
Double.toString(double d):
double을 문자열로 변환한다.
예: String str = Double.toString(123.45);
String.format:
다양한 형식으로 숫자를 문자열로 변환한다.
예: String str = String.format("%d", 123);
풀이
import java.io.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
String[] minusStrs = sc.nextLine().split("-");
int sum = 0;
//첫번째 인덱스 처리
String[] firstPlusStrs = minusStrs[0].split("\\+");
for (String str : firstPlusStrs) {
sum += Integer.parseInt(str);
}
//나머지 처리
for (int i = 1; i<minusStrs.length; i++) {
String[] plusStrs = minusStrs[i].split("\\+");
int temp = 0;
for (String str : plusStrs) {
temp += Integer.parseInt(str);
}
sum -= temp;
}
System.out.println(sum);
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
| [백준/Java] 14425 문자열 집합 (0) | 2025.03.30 |
|---|---|
| [백준/Java] 4949 균형잡힌 세상 (0) | 2025.03.30 |
| [백준/Java] 1157 단어 공부 (1) | 2025.03.24 |
| [백준/Java] 1152 단어의 개수 (1) | 2025.03.23 |
| [백준/Java] 1032 명령 프롬프트 (0) | 2025.03.23 |