C++(2)
-
[C++] 백준 9012번 - 괄호
문제를 읽고 VPS는 (, ) 개수가 같고 괄호가 닫혀 있어야 된다고 생각해서 스택을 사용했다. 우선 '('이면 push, 스택이 비어있지 않고 ')'이면 pop을 했고 여기서 NO인 경우(VPS가 아닌 경우)를 두 가지 찾았다. ① ')'인데 스택이 비어있는 경우이다. 이 경우는 ')' 괄호 개수가 '('개수 보다 많은 경우 또는 ')(' 열린 괄호인 경우이다. ② 각 문자열에 대해 연산이 끝났을 때 스택이 비어있지 않는 경우다. 이 경우는 '(' 괄호 개수가 ')'개수 보다 많은 경우이다. ※NO에 해당하는 경우를 아래 코드에서 주석으로 표시했다. ①, ②인 경우는 count++; 했고, count가 0이면 YES, count가 0이 아니면 NO를 출력해서 VPS를 판단했다. #include #inc..
2020.07.10 -
[C++] 백준 17298번 - 오큰수
처음에는 스택, 벡터 라이브러리를 사용하지 않고 for문으로 하나씩 검사하는 알고리즘으로 코드를 작성했다. 위 코드로 채점하니까 시간 초과가 떠서 결국 구글링을 하게 됐다. 구글링 한 코드를 분석하니까 벡터는 입력한 수를 저장하고 스택은 i번째 원소의 오큰수를 찾기 위해 인덱스 i를 저장한다. 두 번째 for문은 원소 개수만큼 반복한다. while문 조건은 스택이 비어있지 않고 v[s.top()] 오큰수를 찾으면), v[i](오큰수)를 출력할 벡터에 대입하고 스택의 top(인덱스 i)을 pop한다. while문 조건을 만족하지 못하면 스택에 i값을 push한다.(스택에 인덱스 i 삽입) 참고: https://sihyungyou.github.io/baekjoon-17298/ 백준 17298번 : 오큰수 B..
2020.07.10