제가 국어가 서툰건지 글을 제대로 이해는 못했는데


대충 문제는 이거죠?


//

병신스위치도 켜질 수 있다!


대신 병신스위치들이 다 켜져있을 때 최종확인하면 에러!


고로 병신스위치들을 제외한 정상 스위치들만 켜라!

//


1. 일단 스위치가 켜져있는지 꺼져있는지 정보를 저장하는 배열을 선언


int[] switch = new int[n]; (n은 스위치 개수) (0이면 꺼짐, 1이면 켜짐)


2. 몇 번, 몇 번이 병신 스위치인지 저장하는 배열 선언


boolean[] disorder = new boolean[n] (true면 병신, false면 정상)


3. 최종 확인 때 에러가 발생했는지 안했는지 boolean 배열 선언하고 for문을 돌리며 병신스위치가 켜져있는지 확인합니다. 


boolean isSuceess = true; // 성공으로 초기화


for (int i=0; i<n; i++) {

if (disorder[i] && switch[i] == 1) {

printf("에러!");

isSucess = false; // 에러나면 실패!

break;

}


4. 에러가 났으면 병신 스위치를 제외한 정상 스위치만 켜면 되겠죠?


if (!isSucess) {

for (int i=0; i<n; i++) {

if (disorder[i]) {

switch[i] = 0; //병신 스위치는 스위치 끔

} else {

switch[i] = 1; //정상 스위치는 스위치 온!

}

}

}



이거 맞나요?