문제정리)

스위치개수와 현재 스위치 상태가 입력

학생수가 입력되고 

각 학생마다 학생성별, 학생번호가 입력됨

남자와 같은 경우에는 

학생번호의 배수의 인덱스를 가지는 스위치를 상태 전환

여자와 같은 경우에는

학생번호를 기준으로 좌우 대칭 되는 최대 범위만큼 스위치를 상태 전환


문제 풀이)

남학생은 반복문 수행하면서 자신의 인덱스로 나누어서 나머지가 0이면 그러니까 나누어 떨어지는 인덱스를

상태 변환시켜주면 된다. (i % 학생번호 == 0)

여학생이 조금 당황 스러웠는데,

좌우 대칭의 범위를 count변수로 관리하면서 하나씩 늘려나가면서 대칭되면 while문을 계속 수행하게 했고, 

대칭 되지 않으면 while문을 빠져나오게했다.

한 가지 예외는 범위를 늘리다가 할당된 배열의 범위를 넘어서는 경우가 있을 것이라고 판단했다. 

좌우대칭범위를 설정하는데, (count가 학생번호보다 커지면) 배열 인덱스가 음수가 되기 때문에 종료해야 한다.

count가 (전체 스위치 개수 - 학생번호보다 커지면) 할당된 스위치 개수 이상의 인덱스에 접근하기 때문에 종료해야 한다.


이 부분만 잘 처리해주면 크게 문제 없이 수행하는 코드가 완성

'알고리즘문제풀이' 카테고리의 다른 글

더블릿_어망투망  (0) 2015.04.14
더블릿_종이 자르기(소트)  (0) 2015.04.14
더블릿_짧은노래  (0) 2015.04.14
면접알고리즘시그_1주차  (0) 2015.04.09
2670_연속부분최대곱  (0) 2015.04.09
Posted by slender ankles
,