안녕하세요? 김지연 회원님
정보처리 자격시험 온라인 강의, 최강! 기사친구 입니다.
회원님 질문에 답변 드리겠습니다.
교재 162p 12강 기출문제에서 5와 가까운 수를 구하는 알고리즘에서
만약 배열에 4, 3, 9, 6, 8, 10이 저장되어 있으면 4 와 6 중 어느것이 출력되는지 질문하셨는데요?
결론부터 말하자면 배열에 들어있는 숫자의 순서에 따라 다릅니다.
교재 알고리즘 순서도를 보시면 마지막 M( 데이터와 5의 차이들 중 최소 차이를 저장하는 변수 ) 과 X( 각 단계 마다 5와 각 데이터의 차가 저장되는 변수 )를 비교하는 분기문에서
M 값이 이 X 값보다 크면 X의 값이 M에 할당되고,
작거나 같으면 M과 S변수에 값을 할당하지 않습니다.
따라서 회원님께서 임의로 4, 3, 9, 6, 8, 10 ... 이라는 배열로 알고리즘을 진행하면
이미 4 에서 M 변수에 1, S 변수에 4가 할당되어 있으면
마지막 분기문에서 6을 비교할때 5와의 차이가 1로써 기존의 M의 변수값과 같기 때문에
다음 6 을 비교할 때에는 값이 교환이 되지 않습니다.
그러므로 마지막 결과값으로 4가 출력 되게 됩니다.
반대로 다음과 같은 6, 3, 9, 4, 8, 10 배열에서는
이미 6 에서 M 변수에 1, S 변수에 6이 할당되어 있기 때문에
나중에 4와의 비교에서 값이 교환되지 않습니다.
따라서 결론적으로 배열의 순서에 따라 출력되는 값이 다릅니다.
회원님, 이해되셨나요? ^^
열공하시구요..
앞으로도 학습에 성실히 임하여 꼭 합격하시길 기원하겠습니다.
알고리즘 12강 가까운수 질문하려고 합니다.
162p에 5와 가까운수를 구하는 것인데
배열공간에 임의로 4, 3, 9, 6, 8, 10...
이렇게 넣어놨을때
여기서 5랑 가까운수는 6과 4입니다.
이렇게 되는 경우는 둘다 답이 되는건지 아니면 마지막에 계산되는게 답이되는건지 궁금합니다.
|