그중 모르는 문제가 있어서 물어보겠습니다.
세대인원수가 4 이상인 자료에 대하여(수도사용료 + 도시가스사용료)의 값에 따라 오름차순 정령하였을 때, 5번째 자료의 (수도사용료 + 도시가스사용료)의 값을 출력하시오 . 동일값 발생시 아파트 관리번호에 대하여 오름차순 정렬하시오.
답:
dim 계산(1000)
for i = a to b
get #1, i, outrec
if val(outrec.세대인원수) >= 4 then
수 = 수 +1
계산(수) = val(outrec.수도사용료) + val(outrec.도시가스사용료)
end if
next
for i = 1 to 수
for j = i + 1 to 수
if 계산(i) > 계산(j)then
k = 계산(i): 계산(i) = 계산(j) : 계산 (j) = k
end if
next
next
답지에는 이렇게 나오는 데 이해가 안되네요 ㅜㅡ
1. 총 차료는 몇건이고 - 명시되어 있지 않은경우 프로그래밍 자체를 시작하기 힘듬.
2. 자료는 어떤식으로 구성이 되어 있으며- 파일인지, DB인지 읽어들일 방법을 명시해야 한다고 봄
3. 소팅(정렬)은 해야 하는지 - 문제만으로 봐서는 정렬이 필요 없음. 5번째 자료만 찾으면 되니까
모든 차료를 한번만 훑어보면 되는데, 오버헤드가 큰 정렬을 해야 하는지... (소스의 방법인 버블 소트는
엄청난 오버헤드를 가지고 있습니다. O(N * N) 정렬된 자료를 저장하지 않는것으로 봐서 매번 정렬하는것 보다
한번의 자료를 찾는 것이 더 빠른 처리가 가능함)
등등이 문제에 명시되어 있지 않으며, 답지를 보면 말도 안되는 (컴파일은 커녕 문법에도 오류가 있는)
1. 답지에는 값을 출력하라고 했지만 출력하는 루틴이 없을 뿐더러
2. 동일값 발생시 처리 방법도 존재하지 않네요.
저렇게 짰는데 제대로 돌아가는 언어라면 제가 먼저 배워서 널리 사용하고 싶네요. 제대로 된다면 제 7세대 언어라
감히 칭하고 싶습니다. 프로그래밍 한 것보다 더 많은 출력을 알아서 해 주니까...
솔직히 저는 하나의 자격증도 가지고 있지 않지만 - 친구녀석들은 정보처리 기사 1급 자격등을 가진 녀석들도
수두룩 하지만 만약 저런식의 시험이 나온다면 시험 보이콧 하겠습니다. 아! 저는 문제의 유형조차 모르는
이유가 아예 자격증 시험을 칠 생각 조차 하지 않았기 때문 입니다.