코딩 테스트/코드트리

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

셩잇님 2023. 9. 22. 01:10
반응형

 

 

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

 

 

0. 문제 풀이 순서

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

 

1. 설명

 

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

 

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

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

www.codetree.ai

 

문제 사진 :

 

문제 설명 : 기존의 줄세우기 1번 문제와 유사하다. 키가 더 작은 학생이 앞에 오고, 키가 동일하다면 몸무게가 더 큰 학생이 앞에와야 한다. 다만 번호 정보가 따로 주어지지 않고 입력된 순서대로 부여되므로 번호를 초기화할 때 1로 초기화 하여 후위 증가를 이용해 처리해야 한다.

 

 


 

 

나의 소스 코드 :

 

코드 설명 : 문제 설명과 같이 첫 번째 입력된 학생의 번호를 1번로 설정한다. 이 후 번호는 값 입력 부분에서 따로 받는 것이 아닌 후위증감 연산을 이용해 값을 늘려주는 방식을 취한다.

 

 

2. 시간

  • 문제 풀이를 위해 설정한 시간 : 10분
  • 실제 풀이 시 걸렸던 시간 : 5분

 

 

3. 질문

  • 시간 복잡도 : 단순 for문을 n만큼 반복문을 수행하였기 때문에 O(n)의 시간이 걸린다.
  • 공간 복잡도 : 4개의 int 변수를 사용하였으므로 4n + 16의 값을 가진다. 따라서 입력 값에 따라 선형적으로 복잡도가 증/감 하기 때문에 O(n)이 걸린다.
  • 어려웠던 부분 : 나도 모르게 값을 입력하는 cin 메서드 내부에 number를 넣어주는 바람에 출력이 이상하게 되었다. 후에 디버깅을 통해 어느 부분에서 잘못했는지를 확인했다.

 

 

4. 기타

  • 최초 풀이 : 23.09.22
  • 재 풀이 : -
  • 왜? : -

 

 

 

반응형