Dev Hyeri

◖코딩 테스트◗▬▬▬▬▬▬▬▬▬/해커랭크

[해커랭크Medium](2024) The PADS. 교수, 연기자, 의사, 가수 (설명/코드/정답)

_hyeri 2024. 2. 16. 16:00

 

문제 링크 : 

https://www.hackerrank.com/challenges/the-pads/problem

 

 

1. 요구 사항 이해

이름 및 직업의 첫 글자를 소괄호parentheses로 감싼 뒤 이름에 이어 출력

 

 

 

 

2. 설계/검증 

✔️ 문자 뽑아내기  SUBSTR()  또는 LEFT() 사용

 

✔️  문자열 이어붙이기 CONCAT()함수 사용

 

✔️  문자열을 소문자로 변환하는 LOWER() 함수 사용 

 

 

 

 

3. 정상 코드

 Weather Observation Station 18, 기상관측소 18호

SELECT CONCAT(NAME, "(", LEFT(OCCUPATION, 1), ")")
FROM OCCUPATIONS
ORDER BY NAME;

SELECT CONCAT("There are a total of", " ", COUNT(OCCUPATION), " ", LOWER(OCCUPATION), "s.")
FROM OCCUPATIONS
GROUP BY OCCUPATION
ORDER BY COUNT(OCCUPATION) ASC;

 

/*출력 결과
Aamina(D)
Ashley(P)
Belvet(P)
Britney(P)
Christeen(S)
Eve(A)
Jane(S)
Jennifer(A)
Jenny(S)
Julia(D)
Ketty(A)
Kristeen(S)
Maria(P)
Meera(P)
Naomi(P)
Priya(D)
Priyanka(P)
Samantha(A)
There are a total of 3 doctors.
There are a total of 4 actors.
There are a total of 4 singers.
There are a total of 7 professors.
*/

 

 

내부 동작 순서 

 

첫번째 쿼리  

1. FROM 절

OCCUPATIONS 테이블을 대상으로 합니다.

 

2. SELECT 절

각 직업의 이름과 직업의 첫 글자를 괄호 안에 묶어서 반환합니다.

 

3. ORDER BY 절 

결과를 NAME을 기준으로 정렬합니다.

 

 

두번째 쿼리  

1. FROM 절

OCCUPATIONS 테이블을 대상으로 합니다.

 

2. GROUP BY 절 

OCCUPATION을 기준으로 그룹화합니다.

 

3. SELECT 절 

각 그룹(직업)별로 해당 직업의 수를 세고, 이를 문자열로 조합하여 반환합니다.

 

4. ORDER BY 절 

결과를 각 직업의 수(COUNT(OCCUPATION))를 기준으로 오름차순으로 정렬합니다.