HACKERRANK 2일차

U_in_joy·2022년 5월 17일
1

SQL

목록 보기
2/16
post-thumbnail

Weather Observation Station 5

SELECT CITY, LENGTH(CITY) FROM STATION WHERE (LENGTH(CITY) = 21);
SELECT CITY, LENGTH(CITY) FROM STATION WHERE CITY LIKE 'Amo';

벌써 어렵다니?!


치사한 방법을 썼다. 일단 가장 MAX, MIN 갯수를 구하고, 그걸 선택하게 했다. 찾아보니 MIN, MAX를 쓰지 않아도 ORDER BY, LIMIT을 이용하면 해결이 되는 문제였다. ORDER BY는 떠올랐지만 LIMIT은 떠올리지 못해 이건 절대 안 되겠구나 했지만 잘 몰랐었다.



SELECT CITY, LENGTH(CITY) 
FROM STATION 
ORDER BY LENGTH(CITY) DESC, CITY ASC
limit 1;

SELECT CITY, LENGTH(CITY) 
FROM STATION 
ORDER BY LENGTH(CITY) ASC, CITY ASC
limit 1;

코드의 가독성을 생각해서 줄바꿈을 잘 하자!




Weather Observation Station 6

SELECT CITY
FROM STATION 
WHERE CITY LIKE 'A%' OR
      CITY LIKE 'E%' OR
      CITY LIKE 'I%' OR
      CITY LIKE 'O%' OR
      CITY LIKE 'U%';

훨씬 깔끔하게 어떻게 표현하면 좋을까?
IN (,,,) 이런 식으로는 코드가 먹히지 않았다.
정규 표현식을 쓰면 된다!



SELECT CITY
FROM STATION
WHERE CITY REGEXP '^[aeiou]';
profile
끝까지 가자!

0개의 댓글