선생님~! 궁금한게 있어서요~
수업중에 나온 기출문제인데요,, 문제해석중에 애매한게 있어서요~
정렬문제가 ~~자료에 대하여 ~~에따라 오름차순(또는 내림차순)으로 정렬하였을때 어떤 자료의 ,,을 출력하시오. 대게 이렇잖아요~
제가 알기로는 변수저장할때 문제의 ''~정렬하였을때''까지의 변수를 저장하고 나머지 부분을 배열변수 구할때 집어넣는걸로 알고 문제를 풀었는데요 05년 5월 11일 오후 1번문제에서는 ''~정렬하였을 때''이 부분의 변수를 배열 변수 구하기에 집어넣어서 풀던데 왜 그러나요~??
말로설명하려니 힘드네요,,^^;;
소스올려볼게요~!
Option Explicit
Sub main() Dim 인수1, 인수2, k, 버퍼 As Variant Dim 예약수량, 예약금액, 지불금액, 예약일자(1000), 일련번호(1000), 합계(1000), p, temp, num As Variant 인수1 = Val(Left(Command, InStr(Command, " "))) 인수2 = Val(Mid(Command, InStr(Command, " "))) Open "c:\c_it\data\san0105.txt" For Input As #1 For k = 1 To 인수2 Line Input #1, 버퍼 If k >= 인수1 Then 예약수량 = Val(Mid(버퍼, 18, 5)) 예약금액 = Val(Mid(버퍼, 23, 10)) 지불금액 = Val(Mid(버퍼, 48, 10)) If (예약수량 * 예약금액) >= 7000000 Then num = num + 1 합계(num) = 지불금액 예약일자(num) = Trim(Mid(버퍼, 8, 10)) 일련번호(num) = Trim(Mid(버퍼, 1, 7)) End If End If Next k ''정렬(합계 오름차순 or (합계같음 and 일련번호 오름차순) For k = 1 To num For p = k To num If 합계(k) > 합계(p) Or_ (합계(k) = 합계(p) And 일련번호(k) > 일련번호(p)) Then temp = 합계(k) 합계(k) = 합계(p) 합계(p) = temp temp = 일련번호(k) 일련번호(k) = 일련번호(p) 일련번호(p) = temp End If Next p Next k Close #1 Open "c:\c_it\data\ans1.txt" For Output As #2 Print #2, 인수1, 인수2, 예약일자(num) Close #2 End Sub
문제를 풀어볼때마다 느끼는건데 문제 분석이 제일 중요한것 같아요~ 선생님께서 풀어놓으신게 맞으니,따라는 하는데 제가 문제해석을 잘못한 것인지,문제마다 유기적으로 풀어야 되는것인지,,알쏭달쏭 합니당,,ㅋㅋ 알려주세요~^^
|