본문 바로가기

분류 전체보기

(86)
백준 12789번 도키도키 간식드리미 https://www.acmicpc.net/problem/12789 아이디어:1. N번의 입력과 1개의 스택으로 끝낼 수 있다.2. pos는 대상 번호표 순서로 1부터 시작한다.3. 들어온 입력이 pos와 같으면 pos를 증가한다.4. 들어온 입력이 pos와 다르면 스택에 넣는다.5. 스택 top과 pos를 비교하여 같으면 pop하고 pos를 증가한다.6. 5의 과정을 while문으로 작성해서 pos에 해당하는 스택 top을 모두 pop한다. 입력받은 수(tmp)가 순서(pos)와 일치하면 PASS(pos++), 다르면 스택에서 대기(space.push(tmp))스택 top도 순서(pos)와 일치하면 PASS(pos++), 이걸 순서와 다를 때 까지 반복 참고 풀이: https://zzaekkii.tis..
백준 1935번 후위 표기식2, C++ 소수점 출력 https://www.acmicpc.net/problem/1935 아이디어:1. 각 알파벳에 대응하는 수를 26 크기의 double 형 배열로 입력받는다.2. string으로 후위 표기식을 입력받고, char 형 스택을 사용한다.3. 알파벳이 들어오면 스택에 삽입하고, 연산자가 들어오면 스택에서 값을 2개 꺼내서 계산한다.4. 마지막에 스택에 남은 값을 출력한다.5. 소수점 출력: fixed는 소수점을 고정해서 출력하겠다는 의미이고, precision()는 소수점 아래 자리수를 이야기하며 그 아래는 자동 반올림된다. cout  #include #include using namespace std;int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);..
백준 17608번 막대기 https://www.acmicpc.net/problem/17608 아이디어:1. 우선 스택에 다 넣고, 마지막부터 비교하면서 뺀다. #include #include using namespace std;int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N, tmp, ans = 0; stack S; cin >> N; while (N--) { cin >> tmp; S.push(tmp); } tmp = S.top(); while (!S.empty()) { if (S.top() > tmp) { tmp = S.top(); ans += 1; } S.pop(); } cout
백준 12605번 단어순서 뒤집기, C++ stringstream으로 문자열 공백 기준 자르기 https://www.acmicpc.net/problem/12605 아이디어:1. 스택에 문자열을 잘라 넣고 마지막에 그대로 꺼내서 출력2. 공백 포함 한줄 문자열 입력 (ex. "this is a test")string tmp;// cin.ignore(); // if you already use cingetline(cin, tmp); 3. 한줄 문자열의 공백으로 잘라서 스택에 입력string t;stack str;stringstream ss(tmp);while(ss >> t) str.push(t); #include #include using namespace std;int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N; string ..
백준 1874번 스택 수열 https://www.acmicpc.net/problem/1874 아이디어:1. 스택 사용2. 입력한 수열과 현재 자연수 (1~n)을 비교3. 결과를 배열에 저장해서 마지막에 출력4. 현재 수열 값이 현재 자연수보다 크거나 같으면 값이 같아질 때 까지 계속 push하고 마지막에만 pop(ex. 백준 예제 입력의 경우, 수열이 4로 시작한다. 자연수는 1이므로, 4에 도달할 때 까지 계속 push후, 마지막에 pop해서 4를 결과 배열에 저장)5. 현재 수열 값이 현재 자연수보다 작을 때, pop해서 나온 값이 수열 값과 다르면 후입선출의 원리에 의해 수열 만들기가 불가능하다. > NO 출력, flag를 false로 만들고 종료6. 불가능하지 않다면 pop만 실행(ex. 백준 예제 입력의 경우에서 4를 p..