[프로그래머스] 대장균의 크기에 따라 분류하기 2

2024. 9. 20. 23:03·알고리즘/SQL

 

Question

 

대장균 개체의 크기를 내름차순으로 정렬했을 때 상위 0% ~ 25% 를 'CRITICAL', 26% ~ 50% 를 'HIGH', 51% ~ 75% 를 'MEDIUM', 76% ~ 100% 를 'LOW' 라고 분류합니다. 대장균 개체의 ID(ID) 와 분류된 이름(COLONY_NAME)을 출력하는 SQL 문을 작성해주세요. 이때 결과는 개체의 ID 에 대해 오름차순 정렬해주세요 . 단, 총 데이터의 수는 4의 배수이며 같은 사이즈의 대장균 개체가 서로 다른 이름으로 분류되는 경우는 없습니다.

 

 

Pseudocode

 

 

  1. 서브쿼리 a 생성:
    • ecoli_data 테이블에서 모든 컬럼을 선택합니다.
    • SIZE_OF_COLONY를 기준으로 내림차순 정렬하여 순위를 매기고(s_rank), 전체 개체 수를 계산하여(total_count) 서브쿼리 a를 생성합니다.
  2. 조건부 분류:
    • 메인 쿼리에서 id와 함께 s_rank와 total_count를 사용하여 colony_name을 결정합니다:
      • s_rank의 백분율이 25 이하이면 'CRITICAL'
      • 25 초과 50 이하이면 'HIGH'
      • 50 초과 75 이하이면 'MEDIUM'
      • 75 초과이면 'LOW'
  3. 결과 정렬:
    • 결과를 id 기준으로 오름차순 정렬합니다.

 

 

 

Code

 

SELECT id,
       CASE
           WHEN a.s_rank * 100 / total_count <= 25 THEN 'CRITICAL'
           WHEN a.s_rank * 100 / total_count <= 50 THEN 'HIGH'
           WHEN a.s_rank * 100 / total_count <= 75 THEN 'MEDIUM'
           ELSE 'LOW'
           END AS colony_name
FROM (SELECT *,
             rank() over (ORDER BY SIZE_OF_COLONY DESC) AS s_rank, COUNT(*) over () AS total_count
      FROM ecoli_data) a
ORDER BY 1

'알고리즘 > SQL' 카테고리의 다른 글

[프로그래머스] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기  (1) 2024.09.20
[프로그래머스] 자동차 대여 기록 별 대여 금액 구하기  (0) 2024.09.20
[프로그래머스] 연도별 대장균 크기의 편차 구하기  (0) 2024.09.20
[프로그래머스] 조건에 맞는 개발자 찾기  (0) 2024.09.20
[프로그래머스] 특정 세대의 대장균 찾기  (0) 2024.09.20
'알고리즘/SQL' 카테고리의 다른 글
  • [프로그래머스] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기
  • [프로그래머스] 자동차 대여 기록 별 대여 금액 구하기
  • [프로그래머스] 연도별 대장균 크기의 편차 구하기
  • [프로그래머스] 조건에 맞는 개발자 찾기
Noaahhh
Noaahhh
  • Noaahhh
    노아
    Noaahhh
  • 전체
    오늘
    어제
    • 분류 전체보기 (118)
      • 프로젝트 (4)
      • 알고리즘 (113)
        • SQL (108)
        • CP (5)
      • 자격증 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    abc421
    atcoder
    경쟁적프로그래밍
    querydsl
    pasql
    spingboot
    SQL
    프로그래머스
    JPQL
    PS
    atcoder beginner contest
    cp초보
    JWT
    소셜로그인
    어린 동물 찾기
    집계함수
    프로그래밍대회
    contest395
    PCSQL
    코딩테스트
    contest397
    인증/인가
    Spring
    아픈 동물 찾기
    springboot
    카카오로그인
    ABC
    SQL문제
    OAuth2.0
    cp
  • hELLO· Designed By정상우.v4.10.5
Noaahhh
[프로그래머스] 대장균의 크기에 따라 분류하기 2
상단으로

티스토리툴바