𝗦𝗤𝗟 𝗜𝗻𝘁𝗲𝗿𝘃𝗶𝗲𝘄 𝗤𝘂𝗲𝘀𝘁𝗶𝗼𝗻𝘀 𝗔𝘁 𝗦𝗼𝗹𝘃𝗲𝗿𝗶𝗻𝗲𝘀 𝗧𝗲𝗰𝗵𝗻𝗼𝗹𝗼𝗴𝘆 Solverines Technology의 SQL 면접 질문

최근 Solverines Technology Solutions에서 기술 면접을 마쳤습니다. SQL 라운드는 레코드 조회와 행 번호 매기기(row numbering)에 집중되었습니다. 또한 전구 상태를 토글하는 로직 문제도 다루었습니다.

알아두어야 할 SQL 패턴은 다음과 같습니다.

emp_idemp_name 컬럼이 있는 Employee 테이블이 있다고 가정합니다.

마지막 레코드 가져오기: SELECT * FROM Employee ORDER BY emp_id DESC LIMIT 1;

3번째 행 가져오기: SELECT * FROM Employee ORDER BY emp_id LIMIT 1 OFFSET 2; 공식: LIMIT 1 OFFSET (N - 1).

끝에서 3번째 행 가져오기: SELECT * FROM Employee ORDER BY emp_id DESC LIMIT 1 OFFSET 2;

특정 행 패턴을 위해 ROW_NUMBER() 사용하기.

2번째 홀수 행 가져오기: SELECT * FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY emp_id) AS rn FROM Employee) t WHERE rn = (2 * 2 - 1); N번째 홀수 행 공식: rn = (2 * N - 1).

3번째 짝수 행 가져오기: SELECT * FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY emp_id) AS rn FROM Employee) t WHERE rn = (2 * 3); N번째 짝수 행 공식: rn = (2 * N).

로직 문제: 전구 토글링 (Bulb Toggling)

K번의 연산을 통해 N개의 전구를 토글하는 문제입니다. 각 연산은 시작 인덱스 i와 끝 인덱스 j를 제공합니다. 0은 1로 바뀝니다. 1은 0으로 바뀝니다.

예시: N = 5, K = 2. 연산 1: 인덱스 1부터 3까지. 연산 2: 인덱스 2부터 4까지.

초기 상태: 0 0 0 0 0 연산 1 후: 0 1 1 1 0 연산 2 후: 0 1 0 0 1 최종 결과: 0 1 0 0 1.

면접 요약:

면접에서는 다음 SQL 주제들을 다루었습니다:

  • 마지막 레코드 찾기.
  • 시작 또는 끝에서 N번째 행 찾기.
  • 홀수 또는 짝수 행을 위한 ROW_NUMBER() 사용.
  • 로직 문제를 위한 배열 조작.

신입 또는 주니어 개발자라면 이 패턴들을 연습해 보세요.

출처: https://dev.to/aj_arul/sql-interview-questions-asked-in-solverines-technology-solutions-technical-round-30m3