인프런 커뮤니티 질문&답변
질문있습니다!
작성
·
143
0
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <stack>
using namespace std;
int main() {
int n;
scanf("%d",&n);
vector<int> a(n+2);
for (int i = 1; i <= n; i++){
scanf("%d",&a[i]);
}
stack<int> s;
vector<char> c;
s.push(a[1]);
c.push_back('P');
int i = 2;
int j = 1;
while(i<=n || j <= n ){
if(s.top() == j){
s.pop();
c.push_back('O');
j++;
}
else {
s.push(a[i]);
c.push_back('P');
i++;
}
}
if(!s.empty()) printf("impossible");
else {
for (int k = 0; k<c.size();k++) printf("%c",c[k]); // size를 이용한 for문
}
return 0;
}
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
제가 짠 코드가 선생님 코드와 조금 달랐습니다. 그래서 답을 체크해봤더니 3번과 4번 문제에서 time limited이 나왔는데 스스로 디버그 하는 과정을 거쳤지만 어디가 문제인지 찾아내지 못했습니다.ㅠㅠ
어디가 문제인가요?






답변 정말 감사합니다! 일일이 읽어보시고 틀린부분 찾아내기 힘드실텐데 항상 친절하게 답변해주셔서 감사합니다ㅎㅎ