본문 바로가기

BOJ157

[C++] 백준 4949번 : 균형잡힌 세상 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 문제 풀이 이전 문제와 비슷하다! 하나 차이가 있다면 변수 flag이다. flag의 필요성은 이전 괄호 문제와 다르게 2개의 다른 괄호가 오기 때문이 필요한 것이다. 왜냐하면 스택이 비어있는데 닫는 괄호가 오거나 괄호의 짝이 맞지 않다면 절대 맞을 수 없기 때문이다. 느낀 점 코드 자체는 어렵지 않다고 느꼈다. 근데 채점을 하는 도중에 else flag = false; break; .. 2021. 7. 22.
[C++] 백준 9012번 : 괄호 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 문제 풀이 VPS인지 확인하는 법은 간단하다. 입력받은 괄호들을 스택에 차례대로 쌓고 '( )' 쌍이 나오면 스택에서 제거하면 된다. 그럼 스택에 '('이 등장하면 쌓아주고 ')'이 등장하면 제거하는 연산을 하면 된다. 함수 func 연산을 해주는 함수, 비어있으면 "YES" 아니라면 "NO" 출력 이후 스택을 초기화해준다. 느낀 점 분명히 맞은 것 같은데 계속 틀렸.. 2021. 7. 21.
[C++] 백준 10773번 : 제로 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 문제 풀이 기본적인 스택 문제이다. 느낀 점 따로 느낀 점이 없는 문제이다. 코드를 깔끔하게 신경 썻다는 정도..? 코드 #include #include using namespace std; int k, n, sum = 0; stack s; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> k; whil.. 2021. 7. 21.
[C++] 백준 10828번 : 스택 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 풀이 스택 구현의 아주 기본이 되는 문제이다. 느낀 점 STL에서 제공되는 컨테이너를 사용해서 풀었다. 기본적으로 DS를 다듬을 기회가 생겼다. 코드 #include #include #include using namespace std; int n, tmp; string command; stack s; int main() { ios_base::sync_with_stdio(0).. 2021. 7. 21.
[C++] 백준 1676번 : 팩토리얼 0의 개수 https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 풀이 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 만드는 것이다. 1부터 차근차근하나 곱하다 보면 규칙성을 알 수 있다. 바로 10의 값이 곱해질 때마다 1의 자리에 0이 추가된다. 고로 이 문제는 2와 5의 갯수를 따지는 문제이다. 하지만 2의 개수는 5의 개수보다 절대적으로 많을 수밖에 없다. 문제를 쉽게 만들기 위해서 5의 개수만 따져주면 된다. 느낀 점 규칙성을 찾긴 했는데 구현하는 데에 있어서 살짝 해맨 것 같다. 오랫동안 코딩을 쉬었더니 많이 감.. 2021. 7. 19.
[C++] 백준 9375번 : 패션왕 문희조 https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 문제 풀이 문제에서 의상 종류에 따른 개수가 가장 중요하다. 각 의상종류에 +1 함값을 곱한 뒤에 나온 최종 값에서 -1을 해준 것이 정답이다. +1은 해당 종류의 의상을 안 입을 경우이고 -1은 모두 안 입을 경우이다. 예를 들어 안경 2, 상의 2, 바지 3이면 (2 + 1)(2 + 1)(3 + 1) .. 2021. 7. 19.