Faits :
A.
Le 1 er octobre 2015, X._ SA, propriétaire de la parcelle N o 9637 du cadastre de Y._, a déposé une demande de permis de construire un immeuble en PPE de quatre appartements et un attique. Ce projet s'inscrit en zone d'habitation à moyenne densité et fait partie du plan de quartier "xxx". Il a suscité plusieurs oppositions. Par décision du 5 juillet 2017, le conseil communal a levé les oppositions considérant, entre autres, que la hauteur d'un bâtiment à toit plat devait être mesurée à la corniche, sans tenir compte de la hauteur de l'attique, la hauteur moyenne de 7,5 m prévue par le règlement de quartier étant respectée.
Sur recours, le Conseil d'Etat de la République et canton de Neuchâtel a confirmé, le 21 mars 2018, la décision communale sur ce point, mais en considérant que la hauteur au faîte, correspondant à la moyenne des hauteurs mesurées aux angles du bâtiment, était respectée.
Par arrêt du 28 septembre 2018, la Cour de droit public du Tribunal cantonal de la République et canton de Neuchâtel a rejeté le recours formé contre cette décision par les opposants. La cour cantonale a, en substance, confirmé l'interprétation faite par le conseil communal selon laquelle la hauteur du bâtiment se détermine exclusivement par la hauteur moyenne de corniche au sens de l'art. 49 du règlement d'exécution de la loi cantonale sur l'aménagement du territoire du 16 octobre 1996 (RELCAT; RS/NE 701.02).
B.
Agissant par la voie du recours en matière de droit public, B._ et A._, D._ et C._, F._ et E._, H._ et G._, J._ et I._, L._ et K._, N._ et M._, P._ et O._, R._ et Q._, S._ et T._ et V._ et U._ demandent au Tribunal fédéral d'annuler l'arrêt attaqué, principalement de rejeter la demande de permis de construire de l'immeuble sur la parcelle N o 9637 et subsidiairement de renvoyer la cause à la Cour de droit public du Tribunal cantonal neuchâtelois pour nouvelle décision au sens des considérants, le tout avec suite de frais et dépens.
Se référant aux motifs de son arrêt, le Tribunal cantonal propose le rejet du recours. Le Conseil d'Etat ne formule aucune observation et conclut au rejet du recours ainsi qu'à la confirmation de la décision attaquée. L'intimée se prononce sur le fond, demande le rejet du recours et réclame le remboursement des frais occasionnés par la durée excessive de la procédure ainsi que ceux liés à la location des perches des gabarits pour un montant de 7'000 fr. 50. La Ville de Y._ conclut au rejet du recours pour les motifs invoqués dans sa décision. Dans une écriture du 28 janvier 2019, les opposants ont fait valoir leurs observations et confirmé leurs conclusions.

Considérant en droit :
1.
Le Tribunal fédéral examine d'office la recevabilité des recours qui lui sont soumis (<ref-ruling> consid. 1 p. 116; <ref-ruling> consid. 1 p. 254).
Dirigé contre une décision finale (<ref-law>) prise en dernière instance cantonale (art. 86 al. 1 let. d LTF) dans le domaine du droit public de l'aménagement du territoire et des constructions (<ref-law>), le recours est en principe recevable comme recours en matière de droit public selon les <ref-law>, aucune des exceptions prévues à l'<ref-law> n'étant réalisée. Les recourants ont pris part à la procédure devant le Tribunal cantonal. Ils sont particulièrement touchés par l'arrêt attaqué qui autorise la construction d'un immeuble à proximité de leur propriété. Ils peuvent ainsi se prévaloir d'un intérêt digne de protection à ce que cette décision soit annulée. Ils ont donc la qualité pour agir au sens de l'<ref-law>.
Les autres conditions de recevabilité sont réunies, si bien qu'il y a lieu d'entrer en matière sur le fond.
2.
Dans sa détermination sur le recours, l'intimée conclut au rejet du recours et à l'allocation de 7000 fr. 50 à titre de remboursement de frais. La loi sur le Tribunal fédéral ne connaît pas l'institution du recours joint, de sorte qu'une telle conclusion est irrecevable (cf. <ref-ruling> consid. 1.2 p. 266 s.; <ref-ruling> consid. 1.2.3 p. 360).
3.
Dans un unique grief, les recourants soutiennent que l'interprétation opérée par la cour cantonale de l'art. 17.3.6 du règlement d'aménagement de la Commune de Y._ du 9 mai 2001 (ci-après: le règlement) fixant une hauteur maximale à 9 m serait arbitraire.
Le Tribunal fédéral ne revoit l'interprétation et l'application du droit cantonal - et a fortiori communal - que sous l'angle de l'arbitraire (cf. arrêt 8C_232/2015 du 17 septembre 2015 consid. 2.1 non publié in <ref-ruling>). Une décision est arbitraire lorsqu'elle viole gravement une norme ou un principe juridique claire et indiscutable ou lorsqu'elle contredit d'une manière choquante le sentiment de la justice et de l'équité. Le Tribunal fédéral n'a pas à déterminer quelle est l'interprétation correcte que l'autorité cantonale aurait dû donner des dispositions applicables; il doit uniquement examiner si l'interprétation, qui a été faite, est défendable. Par conséquent, si celle-ci ne se révèle pas déraisonnable ou manifestement contraire au sens et au but de la disposition ou de la législation cantonale en cause, elle sera confirmée, même si une autre solution paraît également concevable, voire préférable. De plus, il ne suffit pas que les motifs de la décision attaquée soient insoutenables, encore faut-il que cette dernière soit arbitraire dans son résultat (<ref-ruling>, consid. 1.2, p. 308 ss; <ref-ruling>, consid. 2.1, p. 18 ss).
Dans ce contexte, les recourants sont soumis aux exigences accrues de motivation de l'<ref-law>.
4.
4.1. Par arrêté du 14 décembre 2016, le Conseil d'Etat du canton de Neuchâtel a promulgué la loi adaptant la législation cantonale à l'accord intercantonal harmonisant la terminologie dans le domaine des constructions (AIHC) du 6 novembre 2012 et fixé son entrée en vigueur avec effet au 1er janvier 2017. Les dispositions de la loi cantonale sur l'aménagement du territoire (LCAT; RS/NE 701.0) dans leur teneur en vigueur au 31 décembre 2016 restent donc applicables à la présente cause. Par ailleurs, selon les dispositions transitoires relatives à la modification du 14 décembre 2016 (LCAT in fine), jusqu'à l'entrée en vigueur de l'adaptation des plans d'affectation cantonaux et communaux découlant de la loi du 6 novembre 2012, les art. 11 à 37, 39 à 50, 51 et 52 RELCAT, dans leur teneur en vigueur au 31 décembre 2016, restent applicables.
La loi cantonale sur l'aménagement du territoire prévoit que les plans d'aménagement communaux peuvent contenir notamment des dispositions concernant la hauteur des constructions (art. 59 al. 2 let. b LCAT). Les art. 46 ss RELCAT traitent également de la hauteur des bâtiments. Celle-ci est déterminée dans les plans d'affectation par la hauteur de corniche, le nombre de niveaux ou la hauteur au faîte (art. 46 al. 1 RELCAT). La hauteur de corniche est une hauteur moyenne qui se mesure aux angles du bâtiment (art. 47 al. 1 RELCAT). Pour les bâtiments à toiture plate, la hauteur de corniche est celle de la dalle de couverture même si les gabarits s'attachent au parapet. Il en est de même si les attiques sont admis par la réglementation communale (art. 49 al. 1 et 2 RELCAT).
Le règlement prévoit, dans la zone concernée (art. 17.3.6), une hauteur moyenne de corniche de 7,5 m (let. b), une hauteur maximale de 9 m (let. c) et autorise un seul niveau d'attique (let. d). Quant au règlement du plan de quartier, il prévoit, dans le secteur concerné, une hauteur moyenne à la corniche de 7,5 m (art. 8 ch. 1 let. a), une hauteur maximale de 11 m (art. 8 ch. 1 let. b) et ajoute que la toiture plate avec attique est autorisée (art. 12 ch. 4).
4.2. Il n'est pas contesté par les parties que le règlement de plan de quartier ne peut pas déroger au règlement d'aménagement de la Commune de Y._, si bien que le litige doit être examiné au regard du seul art. 17.3.6 du règlement.
4.3. Les recourants soutiennent que l'interprétation du règlement serait arbitraire car elle contredirait le texte clair de la disposition et qu'elle conduirait à un résultat arbitraire en privilégiant certains voisins au détriment d'autres.
Le Tribunal cantonal a constaté que l'art. 17.3.6 let. b du règlement de la commune, pour la zone concernée, prévoit une hauteur maximale de 9 m. Il s'agit de la seule disposition qui fait appel à la notion de hauteur maximale, toutes les autres se référant à la "hauteur moyenne de corniche" et à la "hauteur au faîte" pour déterminer la hauteur maximale autorisée. L'autorité inférieure a également souligné que, ni le droit communal, ni le droit cantonal, ne définissait la notion de hauteur maximale. Ainsi, en l'absence de toute précision sur cette notion, la cour cantonale pouvait, sans arbitraire, se référer aux dispositions figurant dans le RELCAT pour déterminer la hauteur maximale de l'art. 17.3.6 let. b du règlement communal. Cela s'impose d'autant plus que, comme le souligne la cour cantonale, l'art. 7.1.1 du règlement communal précise que les définitions relatives à l'ordre et aux dimensions des constructions sont celles qui figurent dans le RELCAT et dans la loi cantonale sur les constructions et son règlement d'application. Comme, selon l'art. 46 al. 1 RELCAT, la hauteur des bâtiments est déterminée par la hauteur de corniche, le nombre de niveaux ou la hauteur au faîte, la cour cantonale pouvait considérer que la hauteur prévue à l'art. 17.3.6 let. b du règlement communal avait trait à la hauteur au faîte. Or, comme l'a considéré sans arbitraire le Tribunal cantonal, un bâtiment avec attique ne présente, par définition, pas de faîte. Dès lors, l'application de l'art. 48 RELCAT est exclue au profit de celle l'art. 49 RELCAT. La cour cantonale pouvait ainsi sans arbitraire se fonder sur la hauteur moyenne de corniche de l'attique pour déterminer si la construction ne dépassait pas les 9 m autorisés.
L'autorité précédente a ainsi pris le soin d'expliquer les raisons pour lesquelles elle a considéré que la hauteur maximale autorisée se calculait en prenant en compte la hauteur moyenne de corniche de l'attique. Dans ces conditions, les recourants devaient présenter des éléments concrets contredisant clairement son appréciation. Or, ils se limitent, pour l'essentiel et de manière appellatoire, à opposer leur propre interprétation du droit communal à celle de la cour cantonale, en soulignant que la hauteur maximale ne pourrait pas correspondre à la hauteur moyenne des corniches de l'attique; cela ne suffit cependant pas à démontrer le caractère manifestement insoutenable de cette interprétation (<ref-law>).
Les recourants soutiennent également que la cour cantonale aurait dû s'inspirer de l'AIHC, qui définit la notion de hauteur maximale. Or, comme l'a souligné l'autorité inférieure, l'AIHC n'est pas applicable, son entrée en vigueur étant postérieure à la présente cause. Enfin, les recourants déplorent une très légère différence de hauteur selon les endroits où le calcul est effectué, privilégiant ainsi certains voisins de par leur position, en amont ou en aval de la construction. L'existence d'une légère différence est une conséquence obligée d'une méthode de calcul fondée sur une moyenne, méthode qui est celle prévue par le droit communal. Cet élément, outre qu'il n'est pas de nature à établir que l'appréciation de l'autorité précitée serait déraisonnable, ne suffit pas à qualifier d'arbitraire l'interprétation défendue par l'autorité précédente.
4.4. En définitive, c'est sans arbitraire que la cour cantonale a jugé que la commune n'avait pas excédé la latitude de jugement qui doit lui être reconnue dans l'interprétation de l'art. 17.3.6 let. b du règlement communal. Autant que recevable, ce grief est, par conséquent, rejeté.
5.
Les considérants qui précèdent conduisent au rejet du recours dans la mesure de sa recevabilité. Les frais judiciaires sont mis à la charge des recourants, débiteurs solidaires (art. 66 al. 1 et 5 LTF). Il n'y a pas lieu d'allouer de dépens à l'intimée, qui a procédé sans l'assistance d'un avocat; la commune ne saurait y prétendre (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
Les frais judiciaires, arrêtés à 4'000 fr., sont mis à la charge des recourants, solidairement entre eux.
3.
Il n'est pas alloué de dépens.
4.
Le présent arrêt est communiqué aux parties, au Conseil communal de la Ville de Y._, au Conseil d'Etat de la République et canton de Neuchâtel et au Tribunal cantonal de la République et canton de Neuchâtel, Cour de droit public.
Lausanne, le 15 mai 2019
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président : Chaix
Le Greffier : Alvarez