1102번 - 발전소
한달이 넘는 사투끝에 해결했습니다..
먼저 아무리봐도 맞는데 틀렸다고 나오는경우는
.
1. n개의 문자가 모두 "N" 으로 입력되면서 p=0 이면 0을 리턴해야함
켜진 발전소는 없지만 0개이상 켜져있으면 되므로 처음부터 만족함
2. n개의 문자가 모두 "N" 으로 입력되면서 p=0 이 아니면 -1을 리턴해야함
켜진발전소가 없는데 1개이상의 발전소가 켜져있어야하는건 불가능
3. 애초에 Y의 개수보다 p값이 작거나 같을때 0을 리턴해야함
켜져있는 발전소가 켜야할 발전소보다 많거나 같으면 처음부터 가능한것이고 따라서 비용은 0
따라서 p가 0이면 항상 0을 리턴.
4. 코드상 오류.. 이부분은 예제 만들어서 시도해보는수밖에ㅠ
시간초과의 경우
먼저 이문제를 풀때 bitmask와 dp를 사용해서 코드를 짰는데 계속 시간초과가 났습니다.
힌트는 이미 재귀로 돌아서 중복을 없애주는 dp와 별개로 진입할 필요가 없는 함수를 걸러내줘야합니다.
이 문제에서는 최소치를 구하는것이므로 재귀도중 현재까지 비용이 최소치를 넘어버리면 그 뒤는 볼필요가없습니다
몇시간을 헤메다가 님 덕분에 풀었네요... 좋아요 누르고 갑니다.
"3. 애초에 Y의 개수보다 p값이 작거나 같을때 0을 리턴해야함"
==> 요걸 생각 못해서 계속 헤맸습니다.
덕분에 해결했습니다.... 너무 감사합니다......
댓글을 작성하려면 로그인해야 합니다.
kimdh425 4년 전 15
한달이 넘는 사투끝에 해결했습니다..
먼저 아무리봐도 맞는데 틀렸다고 나오는경우는
.
1. n개의 문자가 모두 "N" 으로 입력되면서 p=0 이면 0을 리턴해야함
켜진 발전소는 없지만 0개이상 켜져있으면 되므로 처음부터 만족함
.
2. n개의 문자가 모두 "N" 으로 입력되면서 p=0 이 아니면 -1을 리턴해야함
켜진발전소가 없는데 1개이상의 발전소가 켜져있어야하는건 불가능
.
3. 애초에 Y의 개수보다 p값이 작거나 같을때 0을 리턴해야함
켜져있는 발전소가 켜야할 발전소보다 많거나 같으면 처음부터 가능한것이고 따라서 비용은 0
따라서 p가 0이면 항상 0을 리턴.
.
4. 코드상 오류.. 이부분은 예제 만들어서 시도해보는수밖에ㅠ
.
시간초과의 경우
먼저 이문제를 풀때 bitmask와 dp를 사용해서 코드를 짰는데 계속 시간초과가 났습니다.
힌트는 이미 재귀로 돌아서 중복을 없애주는 dp와 별개로 진입할 필요가 없는 함수를 걸러내줘야합니다.
이 문제에서는 최소치를 구하는것이므로 재귀도중 현재까지 비용이 최소치를 넘어버리면 그 뒤는 볼필요가없습니다