접근 방법
알고리즘 : 스택
1. 입력 값을 돌면서 레이저확인되면 스택값을 ans에 더한다.
2. 쇠막대기의 끝이보이면 ans++
Javascript
function solution() {
let input = require("fs")
.readFileSync("input.txt") //"/dev/stdin"
.toString()
.trim()
.split("\n")
.map((val) => val.trim());
let arr = input[0].split("");
let stk = [];
let len = arr.length;
let ans = 0;
for (let i = 0; i < len; i++) {
if (arr[i] === "(") {
stk.push(arr[i]);
} else {
if (arr[i - 1] === "(") {
stk.pop();
ans += stk.length;
} else {
stk.pop();
ans++;
}
}
}
console.log(ans);
}
solution();
C++
#include <bits/stdc++.h>
using namespace std;
int main()
{
freopen("input.txt", "r", stdin); //제출 시 삭제
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
string s;
cin>>s;
int len = s.length();
stack<char> stk;
int ans =0;
for (int i = 0; i < len; i++) {
if (s[i] == '(') {
stk.push(s[i]);
} else {
if (s[i - 1] =='(') {
stk.pop();
ans += stk.size();
} else {
stk.pop();
ans++;
}
}
}
cout<<ans<<"\n";
}
'코딩테스트(알고리즘) > baekjoon' 카테고리의 다른 글
[baekjoon] 도로와 신호등 2980 (Javascript) (0) | 2022.06.20 |
---|---|
[baekjoon] 개미 3048 (Javascript) (0) | 2022.06.20 |
[baekjoon] 그림 1926 (C++) (0) | 2022.06.17 |
[baekjoon] 균형잡힌 세상 4949 (Javascript, c++) (0) | 2022.06.16 |
[baekjoon] AC 5430 (C++) (0) | 2022.06.16 |