Skip to content

[C++] BOJ10866(Deque) #16

@Settpark

Description

@Settpark

Deque 구현시 유의사항

  1. tail이 항상 뒤에 있기 때문에 size를 절대값으로 반환하거나, tail - head로 접근한다.
    else if (s == "size") {
        cout << tail - head << '\n';
    }
  1. 아래의 else if문 내의 else문을 삽입하지 않아 항상 tail--가 실행 돼서 틀렸다.
    else if (s == "pop_back") {
        if (tail - head == 0)
            cout << -1 << '\n';
        else {
            cout << arr[tail-1] << '\n';
            tail--;
        }
    }
  1. 위의 코드에서 push_back할때는 값을 추가하고 tail을 증가하기 때문에 값에 접근할 때는 tail-1로 접근하여야 한다.
  2. 반대로, push_front의 경우 head를 먼저 이동시키고 값을 추가하기 때문에 arr[head]로 값에 접근해도 된다.
  3. push_front, push_back을 다르게 구현한 이유는 같은 방식으로 구현하면 제일 처음에 같은 인덱스에 값이 들어가거나,
    초기화 해놓은 처음 인덱스에 값이 비어버리게 된다.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions