본문 바로가기

기초 튼튼/코테준비

[코테준비] SQL 해커랭크(HackerRank) 문제풀이 - 직업정보 포메팅 - 5

* 코딩인터뷰시 기업들에서 널리 활용중인 해커랭크(HackerRank)의 SQL 문제 정리.


 

1. 문제

  • 주어진 직업 테이블 (Occupations)에서 직업정보를 이름과 함께 문자 포멧팅하여 정렬하는 문제입니다.


2. 정답

 

  • 문자열을 연결하는 명령어를 파악하여 조건에 맞게 포멧팅해줘야 합니다.
    • 컴퓨터가 채점하기 때문에 띄어쓰기하나, 쉼표 하나도 틀리지 않게 정밀하게 포메팅해주어야 합니다.
    • 제가 사용한 MySQL의 경우에는 concat을 통해 문자열을 결합할 수 있었습니다.
      • Oracle 환경에서는 || 도 사용가능해서 처음부터 ||를 사용했다가 대차게 에러메시지로 까인..
    • ordered 조건도 정확하게 설정해주어야 합니다. 보통 order조건이 두번 이상 겹쳐서 해줘라는 조건들이 있는데 놓치기 쉬우니 세심하게 봐주어야 할 것 같습니다.
  • 포메팅시 사용해야 하는 정보가 집계 정보가 포함이 되어있기 때문에 두번째 쿼리는 서브쿼리를 사용합니다.
    • group by를 활용한 카운팅을 하여 직업 이름과 직업별 인원수를 출력하는 쿼리를 작성한 뒤에 이를 서브쿼리로 감싸주어 문자열 포메팅을 이쁘게 잘 마무리 해줍니다.
  • 중간 중간 꽤 에러를 많이 봤습니다.. 뭐가 틀렸는지 몰라서 한참 헤맸는데 알고보니 직업정보는 소문자로 출력하라는 조건이 있었어서.. OTL. lower()를 통해서 조건에 맞게 다시 설정해주었더니 Correct 메시지가 뜹니다. 조건을 잘 보는 것이 중요한 싸움인듯 합니다.

3. 결과

 

  • 정답은 위와 같습니다.

 

 

해커랭크(HackerRank)의 'SQL for Interview'를 풀며 정리한 글입니다.


부족한 블로그에 방문해 주셔서 감사합니다.

잘못된 내용 수정 피드백은 댓글로 적어주세요.

감사합니다 :-)

반응형