강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

김주현님의 프로필 이미지
김주현

작성한 질문수

[백문이불여일타] 데이터 분석을 위한 고급 SQL

정규표현식 해커랭크 문제풀이

정규표현식 해커랭크 Weather Observation Station 11

작성

·

325

·

수정됨

0

안녕하세요

해커랭크의 Weather Observation Station 11 문제 관련 질문드리려고 합니다.

 

시작과 끝이 모음이 아닌 city 이름만 출력하는 문제인데요

SELECT DISTINCT CITY

FROM STATION

WHERE CITY REGEXP '^[^aeiou].*[^aeiou]$'

[ ] 안에 ^ 표시가 포함하지 않는다는 조건이라 해당 코드로 작성했더니 정답이 아니라고 떠서 regexr 페이지에서 테스트 해봤는데 여기서는 제대로 작동하더라구요!

 

SELECT DISTINCT CITY

FROM STATION

WHERE CITY NOT REGEXP '^[aeiou].*[aeiou]$'

혹시나 해서 [ ] 안 ^ 대신 REGEXP 앞에 NOT을 써보았는데 이 코드는 제대로 작동했습니다.

 

^조건과 NOT이 차이가 있나요??

 

답변 1

0

지식공유자 J님의 프로필 이미지
지식공유자 J
지식공유자

이 문제에서 요구하는 city name은 모음으로 시작하지 않는 문자열이거나, 모음으로 끝나지 않는 문자열입니다(either do not start with vowels or do not end with vowels).

모음으로 시작하지 않는 문자열 : 자음으로 시작해야 하고, 끝 글자는 자음/모음 둘 다 가능
모음으로 끝나지 않는 문자열 : 자음으로 끝나야 하고, 첫 글자는 자음/모음 둘 다 가능 

위와 같은 의미를 가지므로, 모음으로 시작하면서 모음으로 끝나는 문자열만 아니면 모두 가능합니다.

첫 번째 정규표현식 ^[^aeiou].*[^aeiou]$ : 자음으로 시작 & 자음으로 끝나는 문자열
WHERE CITY REGEXP '^[^aeiou].*[^aeiou]$’ : 자음으로 시작 & 자음으로 끝나는 문자열을 찾아라
-> 문제에서 요구하는 바와 다른 조건입니다.

두 번째 정규표현식 ^[aeiou].*[aeiou]$ : 모음으로 시작 & 모음으로 끝나는 문자열
WHERE CITY NOT REGEXP '^[aeiou].*[aeiou]$' : 모음으로 시작 & 모음으로 끝나는 문자열이 아닌 것을 찾아라
-> 이렇게 작성해야 정답입니다.

김주현님의 프로필 이미지
김주현

작성한 질문수

질문하기