Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- int MinMovesJSH(int* students, int size)
- {
- int downCount = 0; // 내림차순 교체 횟수
- int downChk = -1; // 내림차순 교체할 0 위치
- bool FirstZero = false; // 첫번째 0을 찾았는지
- int upCount = 0; // 오름차순 교체 횟수
- int upChk = -1; // 오름차순 교체할 0 위치
- bool LastZero = false; // 마지막 0을 찾았는지
- for (int i = 0; i < size; i++)
- {
- //==== 내림차순 ====
- if (students[i] == 0 && FirstZero == false)
- {// 가장 앞에 위치한 0을 찾고나면 다신 if문 안으로 들어오지 않음
- downChk = i;
- FirstZero = true;
- }
- if (students[i] == 1 && FirstZero == true)
- {
- downCount += (i - downChk); // 1 위치와 0 위치 사이 값 만큼 교체
- downChk++; // 0위치 이동
- }
- //==== 오름차순 ====
- int num = size-1 - i;
- if (students[num] == 0 && LastZero == false)
- {// 가장 뒤에 위치한 0을 찾고나면 다신 if문 안으로 들어오지 않음
- upChk = num;
- LastZero = true;
- }
- if (students[num] == 1 && LastZero == true)
- {
- upCount += (upChk - num); // 1 위치와 0 위치 사이 값 만큼 교체
- upChk--;// 0위치 이동
- }
- }
- return (upCount < downCount) ? upCount : downCount;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement