morenow
morenow
morenow
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • 스프링부트와 AWS로 혼자 구현하는 웹 서비스 (5)
    • [MSA] Spring Cloud로 개발하는 마이.. (14)
    • Baekjoon Online Judge (40)
    • Programmers (11)
    • Spring Boot (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Id Token
  • HttpExchange
  • dirty write
  • 백준20058C++
  • successHandler
  • Spring Boot
  • write skew
  • 백준 파이어스톰
  • JWT단점
  • 마법사 상어와 파이어스톰
  • jwt
  • lost update
  • Refresh Token Refresh
  • Open Feign
  • B+ Tree
  • B Tree
  • copy up
  • Feign Client
  • HTTP Interface
  • re-distribution

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
morenow

morenow

Baekjoon Online Judge

[BOJ] 10799 : 쇠막대기 (C++)

2023. 8. 6. 16:12

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

 

10799번: 쇠막대기

여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저

www.acmicpc.net

걸린 시간 : 6분 18초


어렵지 않았고, 발상도 쉬웠다. 문자열에서 문자를 처리하면서 발생할 수 있는 경우만 처리해주면 됐다.

스택을 사용할 수도 있지만, 그냥 변수를 사용해도 충분하다.

 

  1. 문자가 ( 이면 현재 막대기의 수를 나타내는 barnum을 증가시킨다.
  2. 문자가 ) 이면 다음 둘 중 하나이다.
    1. 직전 문자가 ( 이면 레이저를 나타낸다. 현재 막대기의 수만큼 잘린 막대기가 생길 것이다. 단, () 자체가 레이저인데 직전 문자인 ( 에서 barnum을 증가시켰으므로 먼저 barnum을 다시 감소시켜야 한다.
    2. 직전 문자가 ( 가 아니면 막대의 끝을 나타낸다. 막대 하나가 생기는 것으로 볼 수 있으므로 ans를 증가시킨다. 막대 하나가 끝났으므로 barnum도 감소시킨다.
#include <bits/stdc++.h>

using namespace std;

int main(void) {
	ios::sync_with_stdio(0);
	cin.tie(0);
	string bar;
	cin >> bar;
	int barnum = 0, ans = 0;
	for (int i = 0; i < bar.size(); i++) {
		if (bar[i] == '(') {
			barnum++;
		}
		else {
			barnum--;
			if (bar[i-1] == '(') {
				ans += barnum;
			}
			else {
				ans++;
			}
		}
	}
	ans += barnum;
	cout << ans;
	return 0;
}

 

'Baekjoon Online Judge' 카테고리의 다른 글

[BOJ] 2644: 촌수계산 (C++)  (0) 2023.08.06
[BOJ] 4963 : 섬의 개수 (C++) with DFS  (0) 2023.08.06
[BOJ] 14500 : 테트로미노 (JAVA) with DFS  (0) 2023.08.03
[BOJ] 1941: 소문난 칠공주 (C++) with 조합  (0) 2023.08.03
[BOJ] 2170 : 선 긋기 (C++)  (0) 2023.08.03
    'Baekjoon Online Judge' 카테고리의 다른 글
    • [BOJ] 2644: 촌수계산 (C++)
    • [BOJ] 4963 : 섬의 개수 (C++) with DFS
    • [BOJ] 14500 : 테트로미노 (JAVA) with DFS
    • [BOJ] 1941: 소문난 칠공주 (C++) with 조합
    morenow
    morenow

    티스토리툴바