• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

5-A

24.02.17 21:27 작성 24.02.17 21:29 수정 조회수 94

0

와.. 일단 저는 다른 방법으로 풀었는데

제가 푼 방식으로의 접근에 익숙해지면 더 난이도 높아지는 그리디 문제는 대처를 못하겠죠? ㅠ..

큰돌님 로직이 큰 가격만 남게되는건 쉽게 이해했는데

if(pq.size() > v[i].first)

이 코드 하나로 큰 가격 + 하나의 날짜에 하나만 꽂기가

가능해지는것에 이마를 탁 치고 갑니다...

 

그래도 제 코드 한번 봐주시고 피드백 한번 주시면 감사하겠습니다.

저는

  1. 가격으로 내림차순 sort한다.

  2. visited[10004]를 만들어놓는다.

  3. 가장 큰 가격부터 자신의 Day에 visited[Day] = true로 해준다.

  4. 만약 자신의 Day에 visited[Day]가 이미 true라면

    1. Day-1부터 1일까지 visited[]가 false일 날을 찾아 거기에 넣어준다.(찾았으면 break)

이 로직으로 풀었습니다!

https://www.acmicpc.net/source/73577847

답변 1

답변을 작성해보세요.

0

안녕하세요 ㅎㅎ

코드리뷰는 다음과 같습니다.

 

	fill(&visited[0], &visited[10004], false);

전역변수 -> 자동으로 false로 초기화가 됩니다. 불필요합니다.

 

sort - cmp 부분 : 잘하셨습니다.

 

 

전체적으로 코드도 깔끔하고 잘하셨어요 ㅎㅎ

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.