제가 국어가 서툰건지 글을 제대로 이해는 못했는데
대충 문제는 이거죠?
//
병신스위치도 켜질 수 있다!
대신 병신스위치들이 다 켜져있을 때 최종확인하면 에러!
고로 병신스위치들을 제외한 정상 스위치들만 켜라!
//
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; //정상 스위치는 스위치 온!
}
}
}
이거 맞나요?
아 우롱한건가