코딩 테스트/코드트리

[Novice Mid : 프로그래밍 연습] 시뮬레이션 : 날짜와 시간 계산 - 요일 맞추기

셩잇님 2023. 9. 25. 23:46
반응형

 

 

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

 

 

0. 문제 풀이 순서

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

 

1. 설명

 

문제 링크 : https://www.codetree.ai/missions/5/problems/guess-day-of-week?&utm_source=clipboard&utm_medium=text 

 

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

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

www.codetree.ai

 

문제 사진 :

 

 

문제 설명 : 11년 m1월 d1일이 월요일이면, m2월 d2일은 어떤 요일인가? 즉 요일을 구하는 문제이다. ❗

 

 


 

 

나의 소스 코드 :

 

 

코드 설명 : 일단 어떤 요일을 구하기 전에, 며 칠이 지났는지 확인해야 되었기 때문에 현재 날에서 이전 날을 빼주었다. 그러나 문제에서 값이 음수일 경우에도 요일을 계산해주었는데, 나 또한 이부분을 인지하여 음수일 경우 요일 배열인 day 배열에서 이를 해결하고자 했다.

 

 그러나 값이 음수일 경우 인덱스를 어떻게 주고, 처리해야 하는지 해결이 되지 않아 결국 주어진 시간내에 문제를 풀지 못하고 해설을 보았다. 😂.. 해설 코드를 보니 세상 깔끔했다. result의 값이 음수일 경우 음수가 아닐 때 까지 7을 더해주고 이를 7로 나누어 출력하는 것이다.. 해설을 보면 세상 간단하게 풀려 맥이 탁 빠져서 나는 왜 이걸 생각 못 했을까? 생각이 절로든다. 쩝.. 🤦‍♀️

 

 

2. 시간

  • 문제 풀이를 위해 설정한 시간 : 16분
  • 실제 풀이 시 걸렸던 시간 : 10분의 시간을 더 가져 25분 동안 풀었지만, 풀지 못하였다.

 

 

3. 질문

  • 시간 복잡도 : 반복문을 2번(이전 달, 이번 달) 수행하였기 때문에 O(n)의 시간이 걸린다.
  • 공간 복잡도 : 7개의 int형 변수 2개의 배열을 사용하였으므로 7n + 28 + 4 * int형 array.size + 8 * string형 array.size의 값을 가진다. 따라서 선언된 변수에 따라 복잡도가 증/감하기 때문에 O(n)이 걸린다.
  • 어려웠던 부분 : result의 값이 음수일 경우 배열 내 인덱스 처리를 어떻게 진행해야 할지 감이 잡히지 않았다.

 

4. 기타

  • 최초 풀이 : 23.09.25
  • 재 풀이 : 해당사항 없음
  • 왜? : 해당사항 없음

 

 

 

반응형