https://www.acmicpc.net/problem/1541
오직 숫자, +, - 로만 이루어진 식을 괄호를 사용한다고 가정하였을 때,
가장 작은 값이 무엇인지 알아내는 문제이다.
물론 직관적으로 이해가 되겠지만,
그냥 문자열에서 - 가 나오면 그 다음 - 가 나오기 전까지의 모든 숫자를 더해서,
그 앞에 있던 숫자에 빼면 되는 문제이다.
예를 들어
55 - 50 + 40 이라면
- 를 기준으로 오른쪽에 있는 55라는 값에 - 뒤에 있는 50과 40을 더해서 빼면 되는 간단한 문제이다.
이 문제는 알고리즘이 딱히 어려운 문제는 아니기 때문에
그냥 사용했던 STL 함수들을 정리해 보겠다.
1. string 클래스
https://learn.microsoft.com/ko-kr/cpp/standard-library/string-typedefs?view=msvc-170
<string> 형식 정의
자세한 정보: typedefs
learn.microsoft.com
string 헤더를 include 하여 사용한다.
내부적으로 전체 크기 관리해준다.
2. basic_string::find
https://learn.microsoft.com/ko-kr/cpp/standard-library/basic-string-class?view=msvc-170#find
basic_string 클래스
표준 C++ 문자열 클래스 'basic_string'에 대한 API 참조입니다.
learn.microsoft.com
특정 string에서 검색한 문자가 어느 인덱스에 있는지 반환해주는 함수이다.
str.find( 검색할 문자 , [검색 시작 위치])로 사용할 수 있다.
만약 해당 문자, 혹은 문자열이 주어진 string에 없다면 string::npos가 반환된다.
3. basic_string::substr
https://learn.microsoft.com/ko-kr/cpp/standard-library/basic-string-class?view=msvc-170#substr
basic_string 클래스
표준 C++ 문자열 클래스 'basic_string'에 대한 API 참조입니다.
learn.microsoft.com
특정 string에서 offset(문자열을 복사 시작할 위치)에서부터 count(복사할 문자 개수)만큼 복사하여 반환하는 함수이다.
나는 2번과 3번을 사용하여 일종의 split 형태를 만들어 사용했다.
최종 코드는 다음과 같다.
CodingTestPrac/백준/Silver/1541. 잃어버린 괄호 at main · csy-59/CodingTestPrac
This is an auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub). - csy-59/CodingTestPrac
github.com
'코딩 테스트 준비(백준, 프로그래머스)' 카테고리의 다른 글
| [백준] 1789 - 수들의 합 (0) | 2025.09.06 |
|---|---|
| [백준] 2217 - 로프 (0) | 2025.09.06 |
| [백준] 1026-보물 (0) | 2025.09.04 |
| [백준] 1931 - 회의실 배정 (0) | 2025.09.02 |
| [백준] 17298: 오큰수_22.06.2 (0) | 2022.06.22 |