작성
·
189
·
수정됨
0
와.. 일단 저는 다른 방법으로 풀었는데
제가 푼 방식으로의 접근에 익숙해지면 더 난이도 높아지는 그리디 문제는 대처를 못하겠죠? ㅠ..
큰돌님 로직이 큰 가격만 남게되는건 쉽게 이해했는데
if(pq.size() > v[i].first)
이 코드 하나로 큰 가격 + 하나의 날짜에 하나만 꽂기가
가능해지는것에 이마를 탁 치고 갑니다...
그래도 제 코드 한번 봐주시고 피드백 한번 주시면 감사하겠습니다.
저는
가격으로 내림차순 sort한다.
visited[10004]를 만들어놓는다.
가장 큰 가격부터 자신의 Day에 visited[Day] = true로 해준다.
만약 자신의 Day에 visited[Day]가 이미 true라면
Day-1부터 1일까지 visited[]가 false일 날을 찾아 거기에 넣어준다.(찾았으면 break)
이 로직으로 풀었습니다!
답변 1
0
안녕하세요 ㅎㅎ
코드리뷰는 다음과 같습니다.
fill(&visited[0], &visited[10004], false);
전역변수 -> 자동으로 false로 초기화가 됩니다. 불필요합니다.
sort - cmp 부분 : 잘하셨습니다.
전체적으로 코드도 깔끔하고 잘하셨어요 ㅎㅎ
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.