HackerRank | Weather Observation Station 8

jeonghens·2025년 5월 29일
0

SQL: HackerRank

목록 보기
21/49

HackerRank Weather Observation Station 8


STATION 테이블에서 첫 번째 문자와 마지막 문자가 모음인 CITY 값을 중복 없이 출력하는 문제이다.

세 가지 방법으로 풀어보았다.


첫 번째 방법은 정규 표현식을 활용하는 것이고, 가장 좋은 방법이라 생각한다.

  • ^: 문자열의 시작
  • $: 문자열의 끝
  • [...]: 대괄호 안 문자 중 하나
SELECT
    DISTINCT CITY
FROM
    STATION
WHERE
    CITY REGEXP "^[aeiouAEIOU]"
    AND CITY REGEXP "[aeiouAEIOU]$"

문자열 처리 함수인 LEFT()RIGHT()로도 풀 수 있다.

각 함수의 구조는 아래와 같고, 각각 왼쪽/오른쪽에서 길이만큼의 문자열을 반환한다.

  • LEFT(문자열, 길이)
  • RIGHT(문자열, 길이)

SELECT
    DISTINCT CITY
FROM
    STATION
WHERE
    LEFT(UPPER(CITY), 1) IN ("A", "E", "I", "O", "U")
    AND RIGHT(UPPER(CITY), 1) IN ("A", "E", "I", "O", "U");

마지막은 LIKE 연산자를 활용한 풀이이다.

SELECT
    DISTINCT CITY
FROM
    STATION
WHERE
    (
        UPPER(CITY) LIKE "A%"
        OR UPPER(CITY) LIKE "E%"
        OR UPPER(CITY) LIKE "I%"
        OR UPPER(CITY) LIKE "O%"
        OR UPPER(CITY) LIKE "U%"
    ) AND (
        UPPER(CITY) LIKE "%A"
        OR UPPER(CITY) LIKE "%E"
        OR UPPER(CITY) LIKE "%I"
        OR UPPER(CITY) LIKE "%O"
        OR UPPER(CITY) LIKE "%U"
    );
profile
알고리즘이나 SQL 문제 풀이를 올리고 있습니다. 피드백 환영합니다!

0개의 댓글