인프런 커뮤니티 질문&답변

Park SungEun님의 프로필 이미지
Park SungEun

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

5-A

5-A

작성

·

189

·

수정됨

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점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

Park SungEun님의 프로필 이미지
Park SungEun

작성한 질문수

질문하기