웅쓰뚱쓰
웅쓰의 IT
웅쓰뚱쓰
  • 분류 전체보기 (127)
    • 프로그래밍 (31)
      • 자료구조&알고리즘 (12)
      • Django (1)
      • NAS (3)
      • python (1)
      • Java (2)
      • Kotlin (0)
      • 안드로이드 (0)
      • 백준 (6)
      • 프로그래머스 (1)
      • 블록체인 (4)
    • IT (57)
      • 스마트폰 (30)
      • 모바일 (3)
      • 기타제품 (9)
      • 기타기술 (10)
      • 소식 (5)
    • 꿀팁 (1)
      • 윈도우10 (1)
    • 리얼후기 (4)
      • 제품리뷰 (2)
      • 일상리뷰 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 블랙프라이데이
  • 이더리움
  • 폴더블폰
  • 블록체인
  • 앱 만들기
  • 동적배열
  • 아마존
  • 삼성
  • 백준
  • 안드로이드 스튜디오
  • LG
  • 패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #Android앱개발올인원패키지Online
  • 화웨이
  • 안드로이드
  • vr

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
웅쓰뚱쓰

웅쓰의 IT

백준 1541 잃어버린 괄호 with 자바
프로그래밍/백준

백준 1541 잃어버린 괄호 with 자바

2022. 11. 19. 12:00


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

풀이

먼저 "-"를 기준으로 문자열을 쪼개 준다

 

55-50+40의 경우 문자열을 쪼개면

55와 50+40으로 쪼갤 수 있으며

String 배열에 {"55", "50+40"}으로 담을 수 있다

 

이제, 배열의 0번 인덱스부터 뒤로 가면서 배열의 원소에 있는 수식을 계산하고, 계산한 결과를 빼주면 된다

0번 인덱스인 55에서 다음 원소인 50+40을 계산하고, 계산 결과인 90을 빼주면 된다

 

더하기만 있는 수식을 계산하는 함수이다

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

    return sum;
}

"50+40"을 입력으로 받았다면

"+"를 기준으로 문자열을 쪼개어서 문자열 배열에 담아준 뒤

문자열 배열에 있는 모든 수를 더하여 return 해준다

 

처음에 "-"를 기준으로 문자열을 쪼개고

첫 인덱스에 있는 숫자부터 시작하여

String[] ss = s.split("-");
int sum = sumFormula(ss[0]);

 

나머지 원소들을 빼준다

for (int i = 1; i < ss.length; i++) {
    sum -= sumFormula(ss[i]);
}

 


 

전체 코드

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

public class Main {


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

        return sum;
    }

    public static void main(String[] args) throws Exception {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();

        // -를 기준으로 자른다
        String[] ss = s.split("-");
        int sum = sumFormula(ss[0]);
        for (int i = 1; i < ss.length; i++) {
            // +를 기준으로 수를 나누어서 더한 결과를 더한다
            sum -= sumFormula(ss[i]);
        }

        System.out.println(sum);
    }
}

'프로그래밍 > 백준' 카테고리의 다른 글

백준 1043 거짓말 with 자바  (1) 2022.10.30
백준 2636 치즈 with 자바  (0) 2022.10.28
백준 5430 AC with 자바  (0) 2022.10.25
백준 2096 내려가기 with 자바  (0) 2022.10.24
백준 7662 이중 우선순위 큐 with 자바  (1) 2022.10.23
    '프로그래밍/백준' 카테고리의 다른 글
    • 백준 1043 거짓말 with 자바
    • 백준 2636 치즈 with 자바
    • 백준 5430 AC with 자바
    • 백준 2096 내려가기 with 자바
    웅쓰뚱쓰
    웅쓰뚱쓰

    티스토리툴바