# Codility: Fish Solution

Lesson 7 Stacks and Queues
```.css-ds3kc{display:table-row;}.css-1t8atru{display:table-cell;opacity:0.5;padding-right:var(--chakra-space-6);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:right;}1.css-2qghsv{display:table-cell;}function Stack() {2  stack = []3
4  this.push = function (el) {5    stack.push(el)6  }7
8  this.pop = function () {9    return stack.pop()10  }11
12  return {13    ...this,14    get size() {15      return stack.length16    },17    get head() {18      return stack[this.size - 1]19    },20  }21}22
23function solution(A, B) {24  const stack = new Stack()25  for (let i = 0; i < A.length; i++) {26    let curr = { A: A[i], B: B[i] }27    if (!stack.head) {28      stack.push(curr)29      continue30    }31
32    if (stack.head.B === 1 && curr.B === 0) {33      let head34      while (1) {35        head = stack.pop()36        const winner = head.A > curr.A ? head : curr37        curr = winner38        if (!(stack.head && stack.head.B === 1 && curr.B === 0)) {39          stack.push(winner)40          break41        }42      }43    } else {44      stack.push(curr)45    }46  }47  return stack.size48}```

codility

## Next Post

Codility: Brackets

Jan 23, 2021

Lesson 7 Stacks and Queues

## Previous Post

Codility: Nesting

Jan 23, 2021

Lesson 7 Stacks and Queues

Search Posts