상담문의

ㆍ HOME > 상담문의 > 정보처리기사 실기
제 목 워크시트 20강 [대각선 채우기]
글쓴이  기사친구작성일 2011-04-04 오전 1:29:37조회수 678
글공유
게시글을 twitter로 보내기게시글을 facebook으로 보내기게시글을 Me2Day로 보내기게시글을 요즘으로 보내기

안녕하세요? 김동현 회원님



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



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



회원님 이 제시하신 답이 정답이 될 수 없는 이유를 한 가지 반례를 들어 설명하겠습니다.

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

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

이제 회원님이 제시한 답대로 알고리즘을 디버깅 해보겠습니다.

이 상태에서는 우선 R 값에 5를 할당하고, C값에 2를 할당한 뒤 

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

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

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

그런데 R 값은 5이고 C 값은 2이기 때문에 분기문에서 yes( 5 < 5*2 ) 로 분기 합니다.

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

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

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

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

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

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

이해되셨나요? ^^

열공하시구요..



지금과 같은 디버깅을 통해 오류를 찾는 접근법은 매우 훌륭합니다.

그러니 조금만 더 노력하여 꼭 합격하시기 바라겠습니다.^^












문제 풀다가 헛갈려서 질문 드립니다.

이 문제에서 정답이 네번째는 20번(N)이라고 나와있거든요. 저도 N이 되는 이유는

이해가 가긴하는데

13번 (R*C) 로 처음에 선택했었거든요.

디버깅 계속해보니깐 이것도 되는 것 같은데

안되는 이유 좀 가르쳐 주십시오 ㅠ.ㅠ

항상 수고하십니다!

댓글쓰기 :
이전글 24강 화폐매수구하기 Worksheet
다음글 문제가 안 풀려여..ㅠ.ㅠ
고객지원센터

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.관리자에게 메일보내기