#INFO 난이도 : SIVLER4 문제유형 : DataStructure_STACK 출처 : 4949번: 균형잡힌 세상 (acmicpc.net) 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net #SOLVE 코드에서 중요한 포인트는 다음과 같습니다. 1. bool 타입 flag 변수를 통해 균형잡힌 문자열 인지 판별 2. 오른쪽 괄호가 나왔을 때 스텍이 비어 있는지 확인 3. 문자열 입력이므로 cin이 아닌 getline 함수 사용 우선, 문자열을 입력받을 str 변수를 선언하고, 공백을 포함한 ..
#INFO 난이도 : SIVLER3 알고리즘 유형 : DataStructure_QUEUE 출처 : 1966번: 프린터 큐 (acmicpc.net) 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net #SOVLE pair 와 queue 의 사용법을 연습할 수 있도록 해준 좋은 문제였습니다. 3번째 테스트 케이스 [6 , 0] [1 , 1 , 9 , 1 , 1 , 1] 를 예시로 풀이 하도록 하겠습니다. 우선 queue와 pair를 이용해 각 중요도를 구별하기 위해서, 인덱스를 붙여 주었습니다. 만약 인덱스가 찾고자 하..
#INFO 난이도 : SIVLER3 알고리즘 유형 : Dynamic Programming 출처 : 2579번: 계단 오르기 (acmicpc.net) 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net #SOLVE DP의 Bottom-up 방식을 이용해 문제를 풀이했습니다. * dp[i] - i 까지 최대 점수 * stairs[i] - 계단의 점수를 저장할 배열 단, 문제의 조건에 유의하여 점화식을 작성해야 합니다. 조건은 다음과 같습니다. 1. 연속된 3칸의 계단을 오를 수 없다. 2. 마지막 계단은 반드시 밟아야 한다. d..
#INFO 난이도 : SIVLER4 알고리즘 유형 : DataStructure_QUEUE 출처 : 11866번: 요세푸스 문제 0 (acmicpc.net) 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net #SOLVE 큐 자료구조를 이용하면 간단하게 풀이 가능한 문제 였습니다. 입력받은 N까지의 수를 QUEUE 에 PUSH한 뒤, K번째 사람이면 pop을 하고 K번째 사람이 아니라면 pop 한 뒤, 다시 뒤에서 push 해 줍니다. while(!q.empty()) { if (cnt % K == 0) { int ans = q.front(); q.pop(); if (q.empty()) { cout >..
#INFO 난이도 : SILVER4 알고리즘 유형 : DataStructure_DEQUE 출처 : 2164번: 카드2 (acmicpc.net) 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net #SOLVE 양쪽이 모두 뚫려있는 STL DEQUE를 이용하면 쉽게 풀이 가능합니다. 우선, deque를 하나 선언해 준 뒤, deque에 n까지의 수를 push_back해 줍니다. deque q; int n; cin >> n; for (int i = 1 ; i 1) { q.pop_front(); if(q.size() =..