호기심 많은 분석가

[MySQL] Hackerrank - Weather Observation Station 6 본문

Coding/Coding Test & Algorithm

[MySQL] Hackerrank - Weather Observation Station 6

DA Hun 2021. 10. 8. 10:37
 

Weather Observation Station 6 | HackerRank

Query a list of CITY names beginning with vowels (a, e, i, o, u).

www.hackerrank.com

select
  city
from station
where city regexp '^[a|e|i|o|u]'

 오랜만에 SQL 연습을 위해 사이트를 찾아보던 중 hackerrank라는 좋은 사이트를 발견했다.

 Python으로 구현하면 간단하게 했을 것 같은데 SQL에서는 starts with를 어떻게  구할 수 있을까? LIKE를 사용하면 간단하지만 이번 문제는 후보군이 있다. 모든 후보군에 대해서 LIKE를 사용해주는 건 아름답지 않으니 새로운 방식을 고민해보자.

 그러던 중 찾은 것이 정규식, REGEXP이다. WHERE REGEXP '정규식'으로 사용해주고, 전체 사용법은 아래와 같다. 

. : 문자 하나
* : 앞 글자의 *개수 숫자 이상 반복
^ : 첫값
$ : 끝값
[.] : 괄호 안의 문자열 일치 확인
{.} : 반복
| : or 

 그렇기에 위의 코드는 ^ : 첫 값을, [] : 괄호 안의 문자열과 일치되는 지 , a|e|i|o|u : aeiou 중 하나라도 일치되면 된다라는 코드가 완성되는 것이다.! 정규식은 정말 강력한 파워를 가지고 있지만 매번 조금씩 고민한다. 더 익힐 필요가 있어보인다!!