Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3.  
  4. int MinMovesJSH(int* students, int size)
  5. {
  6. int downCount = 0; // 내림차순 교체 횟수
  7. int downChk = -1; // 내림차순 교체할 0 위치
  8. bool FirstZero = false; // 첫번째 0을 찾았는지
  9.  
  10. int upCount = 0; // 오름차순 교체 횟수
  11. int upChk = -1; // 오름차순 교체할 0 위치
  12. bool LastZero = false; // 마지막 0을 찾았는지
  13.  
  14. for (int i = 0; i < size; i++)
  15. {
  16. //==== 내림차순 ====
  17. if (students[i] == 0 && FirstZero == false)
  18. {// 가장 앞에 위치한 0을 찾고나면 다신 if문 안으로 들어오지 않음
  19. downChk = i;
  20. FirstZero = true;
  21. }
  22. if (students[i] == 1 && FirstZero == true)
  23. {
  24. downCount += (i - downChk); // 1 위치와 0 위치 사이 값 만큼 교체
  25. downChk++; // 0위치 이동
  26. }
  27.  
  28. //==== 오름차순 ====
  29. int num = size-1 - i;
  30. if (students[num] == 0 && LastZero == false)
  31. {// 가장 뒤에 위치한 0을 찾고나면 다신 if문 안으로 들어오지 않음
  32. upChk = num;
  33. LastZero = true;
  34. }
  35. if (students[num] == 1 && LastZero == true)
  36. {
  37. upCount += (upChk - num); // 1 위치와 0 위치 사이 값 만큼 교체
  38. upChk--;// 0위치 이동
  39. }
  40. }
  41.  
  42. return (upCount < downCount) ? upCount : downCount;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement