프로그래머스 - 잡은 물고기 중 가장 큰 물고기의 길이 구하기

윤민선·2026년 6월 27일

프로그래머스

목록 보기
27/84

문제 설명

FISH_INFO 테이블에서 잡은 물고기 중 가장 큰 물고기의 길이cm 단위로 출력하는 문제이다. 출력 형식은 숫자cm (예: 50cm)이다.

테이블주요 컬럼
FISH_INFOFISH_ID, FISH_TYPE, LENGTH, TIME

접근 방법

가장 큰 길이를 구해야 하므로 MAX(LENGTH)를 써야 한다. 이전에 풀었던 가장 비싼 상품 구하기, 최댓값 구하기와 동일한 MAX() 패턴이다.

추가로 결과값 뒤에 cm를 붙여서 출력해야 한다. 숫자 뒤에 문자열을 붙일 때는 CONCAT() 함수를 사용한다.

CONCAT(MAX(LENGTH), 'cm')  -- 예: 50 → 50cm

구체적으로 정리한 풀이 흐름:

  1. MAX(LENGTH)로 가장 큰 길이 집계
  2. CONCAT(MAX(LENGTH), 'cm')으로 단위 붙이기
  3. AS MAX_LENGTH로 컬럼명 지정

최종 코드

SELECT CONCAT(MAX(LENGTH), 'cm') AS MAX_LENGTH
FROM FISH_INFO

CONCAT() 정리

CONCAT()은 여러 값을 하나의 문자열로 이어붙이는 함수이다.

CONCAT(1,2,3, ...)

자주 쓰는 패턴:

CONCAT(MAX(LENGTH), 'cm')           -- 숫자 + 단위: 50cm
CONCAT(FIRST_NAME, ' ', LAST_NAME)  -- 이름 합치기: John Doe
CONCAT('[', CATEGORY, ']')          -- 텍스트 감싸기: [인문]

구분자를 넣어야 할 때는 CONCAT_WS()를 쓸 수 있다.

CONCAT_WS('-', '2024', '01', '01')  -- 2024-01-01
CONCAT_WS(', ', CITY, COUNTRY)      -- Seoul, Korea

한 가지 주의할 점은 CONCAT()은 인자 중 하나라도 NULL이면 결과가 NULL이 된다는 것이다. 이럴 때는 IFNULL()NULL을 대체값으로 바꿔줘야 한다.

CONCAT('hello', IFNULL(NAME, ''))  -- NULL이면 빈 문자열로 대체
함수용도
CONCAT(a, b)a와 b를 이어붙이기
CONCAT_WS(구분자, a, b)구분자를 사이에 넣고 이어붙이기
IFNULL(값, 대체값)NULL이면 대체값으로 바꾸기

0개의 댓글