From f90720f6d425f872bc9f41fe4be52d0f4c28816c Mon Sep 17 00:00:00 2001 From: luckylooky2 Date: Thu, 1 Aug 2024 12:20:25 +0900 Subject: [PATCH] =?UTF-8?q?08.01:=20regexp(=EC=9E=A0=EC=88=98=ED=95=A8?= =?UTF-8?q?=EC=8B=9D=EB=B3=84)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- baekjoon/2671.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 baekjoon/2671.js diff --git a/baekjoon/2671.js b/baekjoon/2671.js new file mode 100644 index 0000000..3e86f01 --- /dev/null +++ b/baekjoon/2671.js @@ -0,0 +1,20 @@ +// 잠수함식별 : 정규 표현식 +const input = require("fs").readFileSync("/dev/stdin").toString().trim(); +const regex = new RegExp(/^(100+1+|01)+$/g); + +// ^(100+1+|01)+ : 오답 +// ^ : 최소 1번이 아니라 "문자열의 시작"을 의미 +// $ : "문자열의 끝"을 의미 +console.log(regex.test(input) ? "SUBMARINE" : "NOISE"); + +// 1. +// ^(100+1+|01)+$는 문자열의 전체가 패턴과 일치해야 함 +// - 문자열의 처음부터 끝까지 검사하여 일치하지 않는 부분이 있으면 매칭되지 않음 + +// 2. +// ^(100+1+|01)+는 문자열의 시작 부분이 패턴과 일치하는지만 검사 +// - 문자열의 시작부터 패턴이 일치하면 매칭되고, 그 이후의 문자열은 검사하지 않음 + +// 3. +// (100+1+|01)+는 문자열의 중간 부분이 패턴과 일치하는지 검사 +// - 문자열의 시작과 끝이 패턴과 일치하지 않아도 패턴을 찾음