백준 5874번: 소를 찾아라 (C++)
2023. 1. 26. 21:49ㆍ알고리즘/조합
https://www.acmicpc.net/problem/5874
5874번: 소를 찾아라
천방지축 베시(소, 1세)는 외양간을 탈출해서 풀로 뒤덮인 산등성이에 숨었다. 농부인 존씨는 베시를 다시 잡기위해 온 풀숲을 샅샅히 뒤졌지만 찾지 못하였다. 안타깝게도 그는 베시를 찾는
www.acmicpc.net
풀이
앞다리( " (( " )가 앞에 있고 뒷다리( " )) " )가 뒤에 있는 조합을 찾는 문제.
우선, 각 경우를 배열에 담아주었고 반복문을 돌면서 앞다리보다 뒷다리가 뒤에 있으면 순서쌍의 갯수를 추가시켜주었다.
전체 코드
#include <iostream>
#include <string>
#include <vector>
using namespace std;
string N;
vector<int> front;
vector<int> back;
int sum = 0;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> N;
for (int i = 0; i < N.size() - 1; i++) {
if (N[i] == '(' && N[i + 1] == '(') front.push_back(i);
if (N[i] == ')' && N[i + 1] == ')') back.push_back(i);
}
for (int i = 0; i < front.size(); i++) {
for (int j = 0; j < back.size(); j++) {
if (front[i] < back[j]) sum++;
}
}
cout << sum;
}
'알고리즘 > 조합' 카테고리의 다른 글
백준 1759번: 암호 만들기 (C++) (0) | 2023.01.21 |
---|