코딩 테스트/코드트리

[Novice Mid : 프로그래밍 연습] 정렬 : 객체 정렬 - 줄세우기

셩잇님 2023. 9. 13. 00:04
반응형

 

 

★ "왜?" 라는 질문을 스스로에게 하면서 학습하자.

 

 

0. 문제 풀이 순서

  • 논리적 순서 확정
  • 관련 카테고리 혹은 문제 끌어오기
  • 필요한 자료연산 리스트업
  • 이에 제일 유리한 자료구조 선택
  • 구현

 

1. 설명

 

문제 링크 : https://www.codetree.ai/missions/5/problems/line-up-students?&utm_source=clipboard&utm_medium=text 

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

문제 사진 :

클릭해서 보이면 더 잘보입니다! 😎

 

문제 설명 : 클래스를 정렬을 이용하여 푸는 문제이다. 학생이라는 클래스를 키, 몸무게, 번호로 생성하고 문제에서 요구하는 조건에 따라 정렬을 진행하여 풀이한다.

 

나의 소스 코드 : 

 

 

코드 설명 : 키가 큰 학생과 몸무게가 큰 학생이 앞에 와야 하므로 키와 몸무게는 내림차순으로 정렬을 진행하고, 번호는 작은 학생이 와야하므로 오름차순으로 정렬을 진행한다.

 

 

2. 시간

  • 문제 풀이를 위해 설정한 시간  : 13분
  • 실제 풀이 시 걸렸던 시간 : 13분 😲..

 

 

3. 질문

  • 시간 복잡도 : 단순하게 for문을 사용하였고, n 만큼 반복문을 수행하였기 때문에 O(n)의 시간이 걸린다.
  • 공간 복잡도 : 4개의 int 형 변수를 사용하였으므로, 4n + 12의 값을 가진다. 따라서 메모리의 입력 값에 따라 선형적으로 증가하기 떄문에 O(n)의 시간이 걸린다.
  • 어려웠던 부분 : 오름차순, 내림차순을 정렬할 때 부호의 방향을 헷갈렸다.

 

 

4. 기타

  • 최초 풀이 : 23.09.13.(화)
  • 재 풀이 : ❌
  • 왜? : ❌

 

 

 

반응형