해결된 질문
작성
·
255
0
안녕하십니까 큰돌님
1-D 강의 보기 전에 다른 방법으로 혼자 풀어봤는데 효율적인지 궁금합니다
http://boj.kr/37b43fc6a65a47feaaed0c00515f4eed
그리고 처음에 pop 사용해서 코드 작성했었는데 오류가 나던데 스택, 큐, 디큐의 pop 함수는 반환값은 없는 건지 궁금합니다 !
답변 1
1
안녕하세요 대기업님 ㅎㅎ
그리고 처음에 pop 사용해서 코드 작성했었는데 오류가 나던데 스택, 큐, 디큐의 pop 함수는 반환값은 없는 건지 궁금합니다 !
>> 네 없습니다. 이게 언어마다 다른 거같아요 ㅎㅎ
for (char c : s) dq.push_back(c);
for (int i = 0; i < s.size()/2; i++) {
if (dq.front() != dq.back()) {
cout << 0 << '\n';
exit(0);
}
제 생각에는 대기업님은 dq.front()와 back()의 시간복잡도가 O(1)이기 때문에 그렇게 하신 것 같은데요.
사실 문자열은 랜덤접근의 시간복잡도가 O(1)이기 때문에 그냥 문자열로 하셔도 됩니다.
즉, dq라는 불필요한 자료구조 생성 + 매번 pop이 들어가기 떄문에 조금은 비효율적인 코드입니다.
감사합니다.