Leetcode SQL50 (626)

Pocketopi·2025년 4월 19일

[MYSQL] Leetcode

목록 보기
14/34
post-thumbnail

🔔 문제

Leetcode - Exchange Seats
학생들의 자리를 짝수-홀수 순서로 서로 교환하라.
단, 학생 수가 홀수일 경우 마지막 학생은 그대로 둔다.

🎯 풀이 방법

🔑 핵심

자리 교환 로직:
짝수(ID % 2 = 0)이면 → 앞자리(ID - 1)로 이동
홀수(ID % 2 = 1)이면 → 뒷자리(ID + 1)로 이동
그 결과를 S_ID로 재정렬하면 바뀐 자리가 됨
최종적으로 ROW_NUMBER()로 정렬된 번호(ID) 재생성

💻 전체 코드

SELECT ROW_NUMBER() OVER (ORDER BY S_ID) AS ID, STUDENT
FROM (SELECT IF(ID % 2 = 0, ID - 1, ID + 1) AS S_ID, STUDENT
      FROM SEAT) AS A

💡 배운 점 & 문법 정리

  • IF(condition, true, false) → 자리 바꾸는 조건 처리
  • ROW_NUMBER() OVER (ORDER BY ~) → 인덱스 생성

⏱️ 걸린 시간: 3분 56초

profile
통계학/컴퓨터공학 전공 4학년 학생 DA뿌수기 일기장

2개의 댓글

comment-user-thumbnail
2025년 4월 19일

컵라면 물 올려놓고 문제 풀기 가능한 고수

1개의 답글