백준C++

    [백준 1874번-C++] 스택 수열

    http://acmicpc.net/problem/1874 {코드} #include #include using namespace std; int main() { int n, num, cur = 1; stack s; string ans = ""; scanf("%d", &n); for (int i = 0; i = cur) { while (num + 1 != cur) { s.push(cur++); ans += "+\n"; } s.pop(); ans += "-\n"; } else { if (s.top() == num) { s.pop(); ans += "-\n"; } else { ans = "NO"; break; } } } cout

    [백준 17608번-C++] 막대기

    http://acmicpc.net/problem/17608 {코드} #include using namespace std; int main() { int rods[100001], n; scanf("%d", &n); for (int i=0; i=0; i--) { if (max < rods[i]) { max = rods[i]; cnt++; } } printf("%d\n", cnt); } {설명} 이 문제에서는 모든 막대기를 일렬로 나열한 후 오른쪽에서 보기 때문에 어떤 막대기는 오른쪽에 있는 모든 막대기보다 크면 보이게 되는 것입니다. 우선, 가장 오른쪽의 막대기, 즉, 마지막 인덱스의 막대기는 무조건 보이므로 이를 max값으로 잡고 왼쪽으로 하나씩 이동하며 만약 이 max값보다 막대기의 길이가 더 크면 ma..

    [백준 9093번-C++/파이썬] 단어 뒤집기

    http://acmicpc.net/problem/9093 {코드} #include #include #include using namespace std; int main() { int n; string s; stack st; cin >> n; cin.ignore(); while (n--) { getline(cin, s); s += ' '; for (const char&c : s) { if (c == ' ') { while (!st.empty()) { cout