MySQL/Problem Solving

[HackerRank] Weather Observation Station 11

hanshow113 2022. 1. 9. 21:09

 

OR 연산자 구조를 잘 생각해야 함.

A or B 인 경우 A나 B가 둘 중 하나라도 True 이거나 모두 True 인 경우에 True를 반환

따라서

1. (not A) or (not B)
2. not (A or B) = (not A) and (not B)

[1]
SELECT DISTINCT(CITY)
FROM STATION
WHERE CITY REGEXP "^[^aeiou]|[^aeiou]$";

[2]
SELECT DISTINCT(CITY)
FROM STATION
WHERE CITY NOT REGEXP "^[aeiou]"
OR CITY NOT REGEXP "[aeiou]$";

[3]
-- Wrong Answer
SELECT DISTINCT(CITY)
FROM STATION
WHERE CITY NOT REGEXP "^[aeiou]|[aeiou]$";

OR 연산자 구조를 잘 생각해야 함.

A or B 인 경우 A나 B가 둘 중 하나라도 True 이거나 모두 True 인 경우에 True를 반환

따라서

[2]번 쿼리문의 경우  (not A) or (not B)
[3]번 쿼리문의 경우  not (A or B) = (not A) and (not B)