본문 바로가기

[LeetCode] 1667. Fix Names in a Table

by qwee0328 2025. 3. 10.

📝 1667. Fix Names in a Table

🔹 테이블의 이름 수정

첫 번째 문자만 대문자이고 나머지는 소문자로 이름을 수정하는 솔루션을 작성하세요.
user_id순으로 정렬된 결과 테이블을 반환합니다.

 

 

📝 문제 설명

Fix Names in a Table(1667번) 문제는 사용자 이름 데이터를 변환하는 문제입니다.
각 사용자의 이름을 첫 글자는 대문자로, 나머지는 소문자로 변환해야 합니다.
최종 결과는 user_id 순으로 정렬하여 반환해야 합니다.

 

📊 테이블 구조

Users 테이블

Column Name Type
user_id int
name varchar

 

 

💡 SQL 문제 해결 방법

  1. SUBSTRING 함수를 사용하여 첫 번째 문자나머지 문자를 분리합니다.
  2. UPPER 함수를 사용하여 첫 번째 문자를 대문자로 변환합니다.
  3. LOWER 함수를 사용하여 두 번째 문자부터 끝까지 소문자로 변환합니다.
  4. CONCAT 함수를 사용하여 변환된 문자들을 하나의 문자열로 합칩니다.
  5. ORDER BY user_id를 사용하여 user_id 순으로 정렬합니다.

 

반응형

 

🖥️ SQL 풀이

  SELECT user_id
       , CONCAT(UPPER(SUBSTRING(name, 1, 1)), LOWER(SUBSTRING(name, 2))) AS name
    FROM Users
ORDER BY user_id

 

 

🔍 쿼리 분석

  • SUBSTRING(name, 1, 1): 첫 번째 문자만 추출합니다.
  • UPPER(SUBSTRING(name, 1, 1)): 첫 번째 문자를 대문자로 변환합니다.
  • SUBSTRING(name, 2): 두 번째 문자부터 끝까지 추출합니다.
  • LOWER(SUBSTRING(name, 2)): 나머지 문자를 소문자로 변환합니다.
  • CONCAT(...): 변환된 문자들을 합쳐 새로운 이름을 만듭니다.
  • ORDER BY user_id: user_id 기준으로 오름차순 정렬합니다.

 

📌 실행 예제

📊 입력 데이터

Users 테이블

user_id name
1 aLice
2 bOB

 

쿼리 실행 결과

user_id name
1 Alice
2 Bob

 

 

🎯 결론

이 문제는 문자열 함수(UPPER, LOWER, SUBSTRING, CONCAT)를 활용하여 데이터를 가공하는 방법을 연습할 수 있습니다.
특히 이름 데이터의 형식을 통일해야 하는 경우 유용하게 적용할 수 있습니다.

 

 


 

 

더 많은 SQL 문제 풀이를 보고 싶다면 LeetCode SQL 문제 모음을 확인해 보세요! 🚀

728x90
반응형