[백준] 1541. 잃어버린 괄호 (Java)

2023. 8. 3. 21:19·Algorithms(CT)/Baekjoon

https://www.acmicpc.net/problem/1541

 

1541번: 잃어버린 괄호

첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다

www.acmicpc.net

 

문제 설명

양수와 +,- 그러고 괄호를 가지고 식을 만들었다. 그러고 나서 세준이는 괄호를 지웠다.

그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.

괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.


💡 아이디어

+와 -로만 이루어진 식에서 가장 작은 수를 만들기 위한 방법을 생각해봐야 합니다.

+를 먼저 계산해서 가장 큰 수를 만든 후에, -를 계산하면 가장 큰 수를 빼게 되기 때문에 가장 작은 수를 만들 수 있습니다.

 


전체 코드

import java.util.*;

public class Main {
	static ArrayList<Integer> num;
	static ArrayList<Character> sign;
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner s = new Scanner(System.in);
		String str = s.next();
		
		num = new ArrayList<>();//숫자 순서대로 저장
		sign = new ArrayList<>();//부호 저장.
		
		int idx=0;
		for(int i=0;i<str.length();i++) {
			if(str.charAt(i)<'0' || str.charAt(i)>'9') {//기호를 만났을 때
				//idx~기호 이전까지 숫자를 저장
				num.add(Integer.parseInt(str.substring(idx,i)));
				idx=i+1;
				
				//기호 저장
				sign.add(str.charAt(i));
			}
		}
		//마지막 숫자 저장.
		num.add(Integer.parseInt(str.substring(idx)));
		
		
		calculate('+');
		calculate('-');
		
		System.out.println(num.get(0));
	}
	// ss기호를 계산한다.
	static void calculate(char ss) {
		int idx=0;
		while(idx<sign.size()) {
			if(sign.get(idx)==ss) {
				//더하기
				if(ss=='+') num.add(idx,num.remove(idx)+num.remove(idx));
				//빼기
				else num.add(idx, num.remove(idx)-num.remove(idx));
				
				sign.remove(idx);
			}
			else idx++;//계산해야 하는 기호가 아니라면 다음 기호 가져오기.
		}
	}
}

'Algorithms(CT) > Baekjoon' 카테고리의 다른 글

[백준][Java] 29729. 가변 배열  (0) 2025.01.09
[백준] 14719. 빗물 (자바)  (1) 2023.09.27
[백준] 2457. 공주님의 정원 (Java)  (0) 2023.08.01
[백준] 2606. 바이러스 (java)  (0) 2023.07.18
[백준] 2644. 촌수계산 (Java)  (0) 2023.07.15
'Algorithms(CT)/Baekjoon' 카테고리의 다른 글
  • [백준][Java] 29729. 가변 배열
  • [백준] 14719. 빗물 (자바)
  • [백준] 2457. 공주님의 정원 (Java)
  • [백준] 2606. 바이러스 (java)
gwee_99
gwee_99
bE bETTER!
  • gwee_99
    얼렁이와 뚱땅이
    gwee_99
  • 전체
    오늘
    어제
    • ====Category====
      • Algorithms(CT)
        • Programmers
        • Baekjoon
        • Goorm
      • Web
        • Error 해결
      • BackEnd
        • Spring
        • JPA
      • FrontEnd
        • HTML.CSS
        • JavaScript
      • Language
        • Java
      • Cloud
      • CSTS
      • Books
        • IT 5분 잡학사전
      • 일상
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    스택
    IT 잡학사전
    제대로 파는 자바스크립트
    Til
    Greedy
    LV.3
    IT 5분 잡학사전
    DFS
    노마드코더
    lv2
    존안님
    개발자북클럽
    LV.2
    그리디
    자바
    코딩테스트
    호텔 대실
    java
    BFS
    HTML
    따라하며 배우는 html css
    lv.4
    Lv.1
    인프런
    구름
    DP
    구름톤 챌린지
    백준
    프로그래머스
    BOJ
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
gwee_99
[백준] 1541. 잃어버린 괄호 (Java)
상단으로

티스토리툴바