18258번 - 큐 2
안녕하세요. 큐 문제가 C+의 <queue> 를 사용하면 너무 쉬울 것 같아 C에서 링크드 리스트로 한번 짜 봤는데, 제가 만든 예제는 다 통과하는데 정작 BOJ에서는 통과하지 못해 고민입니다 ㅠㅠ 계속 찾아도 어디서 삑이 난건지를 못찾겠네요.
※C++로 푼 후 정답 코드를 보려고 했는데 C++도 마찬가지로 통과를 못 하는 중인데.. 제가 혹시 무슨 조건을 빠트린것 같은데 무얼 빠트렸는지를 못찾겠네요
도와주시면 감사하겠습니다 ㅠㅠㅠ
C코드입니다. 이 아래에 C++ 코드를 첨부했습니다.
C코드는 길어서 코드에 첨부하고, C++ 코드는 본문에 첨부하겠습니다.
#include
#include #include #include using namespace std;int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); string str; int n; cin >> n; int m; queue<int> q; for (int i = 0; i < n; i++) { cin >> str; if (str == "push") { cin >> m; q.push(m); } if (str == "pop") { if (q.empty()) { cout << -1 << '\n'; } else q.pop(); } if (str == "size") { cout << q.size()<<'\n'; } if (str == "empty") { if (q.empty()) cout << 1 <<'\n'; else cout << 0 << '\n'; } if (str == "front") { if (q.empty()) cout << -1 << '\n'; else cout << q.front() << '\n'; } if (str == "back") { if (q.empty()) cout << -1 << '\n'; else cout << q.back() << '\n'; } } return 0;}
제가 pop후 숫자 출력이라는 조건을 빠트렸었네요.
해결됐습니다!
댓글을 작성하려면 로그인해야 합니다.
bhl0203 3년 전
안녕하세요. 큐 문제가 C+의 <queue> 를 사용하면 너무 쉬울 것 같아 C에서 링크드 리스트로 한번 짜 봤는데, 제가 만든 예제는 다 통과하는데 정작 BOJ에서는 통과하지 못해 고민입니다 ㅠㅠ 계속 찾아도 어디서 삑이 난건지를 못찾겠네요.
※C++로 푼 후 정답 코드를 보려고 했는데 C++도 마찬가지로 통과를 못 하는 중인데.. 제가 혹시 무슨 조건을 빠트린것 같은데 무얼 빠트렸는지를 못찾겠네요
도와주시면 감사하겠습니다 ㅠㅠㅠ
C코드입니다. 이 아래에 C++ 코드를 첨부했습니다.
C코드는 길어서 코드에 첨부하고, C++ 코드는 본문에 첨부하겠습니다.
#include
#include
#include
#include
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
string str;
int n;
cin >> n;
int m;
queue<int> q;
for (int i = 0; i < n; i++) {
cin >> str;
if (str == "push") {
cin >> m;
q.push(m);
}
if (str == "pop") {
if (q.empty()) {
cout << -1 << '\n';
}
else q.pop();
}
if (str == "size") {
cout << q.size()<<'\n';
}
if (str == "empty") {
if (q.empty()) cout << 1 <<'\n';
else cout << 0 << '\n';
}
if (str == "front") {
if (q.empty()) cout << -1 << '\n';
else cout << q.front() << '\n';
}
if (str == "back") {
if (q.empty()) cout << -1 << '\n';
else cout << q.back() << '\n';
}
}
return 0;
}