๐Ÿ‘ฉ‍๐Ÿ’ป/JavaScript

[Programmers] JavaScript์—์„œ ๋ฌธ์ž์—ด ๋‚ด p์™€ y์˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ

ํ•œ๋‚˜ 2021. 3. 1. 16:16


๋ฌธ์ œ

๋Œ€๋ฌธ์ž, ์†Œ๋ฌธ์ž๊ฐ€ ๊ตฌ๋ถ„ ์—†์ด ์ฃผ์–ด์ง€๋Š” ๋ฌธ์ž์—ด s์—์„œ p์™€ y์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ , ๊ฐœ์ˆ˜๊ฐ€ ๋™์ผํ•˜๋ฉด true, ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ด๋•Œ p์™€ y๊ฐ€ ๋ชจ๋‘ ํ•˜๋‚˜๋„ ์—†๋‹ค๋ฉด ํ•ญ์ƒ true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (๊ฐœ์ˆ˜ ๋น„๊ต ์‹œ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ X)

 

programmers.co.kr/learn/challenges

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต

๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ, ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

programmers.co.kr

์ฝ”๋“œ

ํ’€์ด

str.match(์ •๊ทœ์‹) ๋ฉ”์„œ๋“œ๋Š” ์ผ์น˜ํ•˜๋Š” ์ •๊ทœ์‹ ๋ฌธ์ž๊ฐ€ ์žˆ์„ ๋•Œ ์ด๋ฅผ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์—†์œผ๋ฉด null์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋ฌธ์ œ์—์„œ p๋‚˜ y๊ฐ€ ํ•˜๋‚˜๋„ ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ์—” ํ•ญ์ƒ true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ, ํ•จ์ˆ˜์˜ ์ฒซ ๋ฒˆ์งธ ๋ถ„๊ธฐ์—๋Š” str.match([p|y]/gi) === null ์กฐ๊ฑด์œผ๋กœ ๋ถ„๊ธฐํ•ด์ค€๋‹ค. ํ•˜๋‚˜๋ผ๋„i ํ”Œ๋ž˜๊ทธ๋Š” insensitive, ์ฆ‰ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค.

else ์ฝ”๋“œ ๋ธ”๋Ÿญ์—์„œ ๋งŒ์ผ p ๋ฌธ์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด null ๋Œ€์‹  0์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•˜๊ณ , p๋ฌธ์ž๊ฐ€ ์กด์žฌํ•˜๋ฉด ๋ฐฐ์—ด์ด๋ฏ€๋กœ length ๋ฉ”์„œ๋“œ๋กœ ๊ธธ์ด๋ฅผ ๊ตฌํ•œ๋‹ค. y ๋ฌธ์ž์— ๋Œ€ํ•ด์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. status๋Š” p์™€ y์˜ ๋ฌธ์ž ๊ธธ์ด๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•œ๋‹ค.

๋‹ค๋ฅธ ํ’€์ด

๋Œ€์ฒด๋กœ ์ •๊ทœ์‹์„ ์“ฐ์ง€ ์•Š์•„๋„ ๋  ์ƒํ™ฉ์ด๋ผ๋ฉด ์•ˆ ์“ฐ๋Š” ๊ฒŒ ์„ฑ๋Šฅ ์ƒ ์ด์ ์ด ์žˆ๋‹ค๊ณ  ๋“ค์—ˆ๋‹ค. ๋‹ค๋ฅธ ํ’€์ด ์ค‘ ์ •๊ทœ์‹์„ ์“ฐ์ง€ ์•Š์€ ์ฝ”๋“œ์ด๋‹ค. ๋ฌธ์ž์—ด์„ toUpperCase()๋กœ ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ๋งŒ๋“ค์–ด์ค€ ํ›„, P ๋ฅผ ๊ตฌ๋ถ„์ž๋กœ ๋‚˜๋ˆˆ๋‹ค. Y์— ๋Œ€ํ•ด์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. (toLowerCase๋ฅผ ์“ฐ๋“  toUpperCase๋ฅผ ์“ฐ๋“  ๋™์ผํ•˜๋‹ค).

 

p๋Š” ๋‘ ๋ฒˆ ๋“ฑ์žฅํ•˜๊ณ , ๊ธธ์ด๋Š” 3์ด ๋ฐ˜ํ™˜๋œ๋‹ค.

์–ด์ฐจํ”ผ ์ •ํ™•ํ•œ p์™€ y์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ฏ€๋กœ ์ด ๋ฐฉ๋ฒ•๋„ ์œ ํšจํ•˜๋‹ค.