알고리즘 공부

[백준 1700번] 멀티탭 스케줄링 - java

철매존 2021. 5. 9. 23:34
728x90

문제 설명

1. 전체 플러그 개수 N, 전기용품 개수 K가 주어진다.

2. K개의 전기제품을 순서대로 플러그에 꽂을 것이다.

3. 가장 최소한으로 플러그를 뽑는 경우를 return하면 된다.

 

 

풀이 과정

 1. 먼저 순서대로 플러그에 꽂아 준다.

 2. 플러그와 전기용품을 확인해서 가장 적게 뽑는 방법을 구하면 된다.

 3. 여러 가지의 경우의 수를 확인해서 풀어야 할 것이다.

  - 플러그가 이미 꽂혀져 있는 경우 그냥 기기를 쓰면 된다.

  - 플러그를 뽑아야 하는 경우 다시는 안쓰는 기기를 뽑으면 된다.

  - 모두 쓰게 되는 경우 가장 나중에 쓰게 되는 기기를 뽑으면 된다.

 4. 각각의 풀이에서 순서대로 Grid로 진행하는데, 경우의 수를 고려해야 한다.

 

풀이(경우의 수 기입)

 1. 먼저 플러그가 비어 있으니 전기용품을 플러그의 개수만큼 꽂아 준다.

   - 플러그를 꽂을 때, 빈 칸들을 순서대로 꽂되, 이미 사용할 기기가 꽂혀 있으면 그건 꽂지 않는다.

 2. 전체 값을 확인하여 가장 뒤에 오는 값을 구하면 된다.

   - 가장 나중에 오는 기기를 확인하고 바로 넣으면, 아예 안쓰는 기기를 빼지 못한다.

 3. 그럼 아예 안쓰는 기기를 빼고, 그냥 다음 기기를 확인한다.

 4. 최대한 코드로 상세히 설명하였다.

 

코드