알고리즘 공부

[프로그래머스] 체육복 - java

철매존 2021. 5. 2. 17:48
728x90
반응형

문제 설명

1. 전체 학생의 수, 체육복을 도난당한 학생 위치, 여벌 체육복을 가진 학생 위치가 주어진다.

2. 여벌 체육복을 가진 K번째 학생은 자기 앞, 뒤의 학생 즉 K-1, K+1번 학생 둘 중 한명에게만 체육복을 빌려줄 수 있다.

3. 최대한 많은 학생이 체육을 들을 수 있게 여벌 체육복을 가진 학생이 빌려주어야 한다.

 

 

풀이 과정

 1. 학생의 수가 주어지면 체육복을 빌려야 하는 학생은 -1, 빌려준 수 있는 학생은 1로 세팅해 준다. 나머지는 0이다.

 2. 전체 학생을 돌아가면서 옷을 잃어버린 경우 빌리도록 한다.

 3. 처음부터 끝까지 진행하기 떄문에 자기 뒤의 학생에게 쭉 옷을 빌리게 되면 최대값을 가질 수 있다.

 4. 그런데 자기 뒤의 학생은 체육복이 없고, 앞의 학생에게 있는 경우가 있을 수 있으므로, 앞이 해당하지 않는 경우 이 process를 진행하면 된다.

 

코드

반응형