상담문의

ㆍ HOME > 상담문의 > 정보처리기사 실기
제 목 워크시트 20회 대각알고리즘 질문입니다.[1]
글쓴이  기사친구작성일 2011-04-06 오후 11:10:20조회수 594
글공유
게시글을 twitter로 보내기게시글을 facebook으로 보내기게시글을 Me2Day로 보내기게시글을 요즘으로 보내기

안녕하세요? 윤기옥 회원님


정보처리 자격시험 온라인 강의, 최강! 기사친구 입니다.


회원님 질문에 답변 드리겠습니다.

첫번째 3번 답이 C <= N 이 되는 이유는 있지도 않은 배열 공간에 숫자를 저장하기 때문이

맞습니다. 이것을 전문용어로 Null Point Exception 이라고 합니다.

그런데 4번에는 회원님께서 말씀하신 N보다 큰값이 들어가면 안됩니다.

그 이유는 다음과 같은 한 가지 반례를 들 수 있습니다.

한가지 반례로 배열의 크기를 (5, 5) 로 받고, 다음 19를 배열에 넣는 상태라고 가정하겠습니다.

 1    2    4    7   11
 3    5    8  12   16
 6    9  13  17
10  14  18
15

이제 회원님이 제시한 답, 예를 들어 4번에 R < 7 이라고 해보겠습니다.

이 상태에서는 우선 R 값에 5( R = R + 1)를 할당하고, C값에 2( C = K - R )를 할당한 뒤 

C >=1 AND C <= N 분기문에 들어가게 됩니다.

조건을 만족하기 때문에 yes로 분기하고, 변수 i 에 19, A( 5, 2 )에 19를 할당할 것입니다.

그 다음 회원님이 말씀하신 답으로 R < 7 분기문에 들어 갈 것입니다.

그런데 R 값은 5이기 때문에 yes로 분기됩니다.

원래 yes로 분기되면 안되는데 말이죠?

왜냐하면 yes로 분기하면 다시 반복하여 R에는 1증가한 6이, C에는 1 이 저장 될 것이고,
 
C >=1 AND C <= N 분기문에 들어가 yes 로 분기하게 되는데,

이때 i 는 20이 할당되고 배열에 값을 넣을때 배열의 위치는 A( 6, 1)이 될 것이기 때문입니다.

다시말해 정의되지 않은 위치입니다.

따라서 정의되지 않은 위치에 할당할때 발생하는 null point exception 이라는 에러가 생깁니다.

따라서 회원님이 제시한 답은 정답이 될 수 없습니다.

이해되셨나요? ^^

열공하시구요..


디버깅을 통해 오류를 찾는 접근법은 매우 중요합니다.

연습하셔서 꼭 합격하시기 바라겠습니다.^^






다른 답은 무난하게 구했는데

3,4 번이 잘안나오더라구요.

3번은 디버깅해보니까 c<=N을 안잡아 넣으면 있지도않은 배열공간에 숫자를집어넣더라구요

근데 4번은 N 보다 큰값이면 돌아가기는 다돌아가는것 같더라구요. 헛바퀴도는게많지만..

예를들어 N이 3이라고한다면

어짜피 후증가니깐 R 값은 3보다 작다라고두어서 , 그냥 기본에충실한 최적화 알고리즘인가요?

댓글쓰기 :
윤기욱
555
2011/04/07 오전 1:27:00
  [1]  
이전글 정보처리기사 질문이요;
다음글 문제가 안 풀려여..ㅠ.ㅠ
고객지원센터

02-556-3650

평일 9:00~18:00

일요일 공휴일 휴무

계좌번호안내

농협은행 724-01-173541

국민은행 633601-04-044665

예금주 (주)조은캠프

상호명 : (주)조은캠프 ㅣ 대표이사 : 이유락 ㅣ 대구광역시 북구 대학로80 경북대학교 IT융합산업빌딩 11층
사업자번호 : 504-81-62507 ㅣ 본사 : 053-954-0030 ㅣ 기술지원 : 070-7019-1144 ㅣ 팩스 : 050-7711-2200 ㅣ 
원격평생교육시설13호 ㅣ 출판사 : 345-2005-00013 ㅣ 통신판매업 : 2005-대구북구-00158 ㅣ 정보보호책임자 : 김창연  
기사친구는 SSL보안방식의 암호화구간을 적용하여 사이트를 안전하게 이용하실 수 있습니다.
COPYRIGHT 2005 (주)조은캠프 ALL RIGHTS RESERVED.관리자에게 메일보내기