>>5월 4일 문제와 관련하여 질문 드립니다.. 고급형 문제의 경우... >> >>"(A+B)=합계(Num)"의 값을 "오름차순" 정렬하여... 가장 "마지막 값"을 출력하시오 >> >>이런 문제가 있는데요, 이 경우 "오름차순의 마지막 값"은 "내림차순의 최초 값"이 되니까.. >> >>코딩을 할 때... 내림차순을 구하여 "합계(1)"로 결과를 구해도 답은 동일하게 나오던데요.. >> >>실제 시험에서도 "오름차순의 마지막 값"과 "내림차순의 최초값"을 같은 것으로 취급하여 코딩해도 될런지요? >> >> >>========================= >>Option Explicit >>Sub Main() >>''''''''필수 >>Dim 인수1, 인수2, i As Long >>Dim 버퍼 As String >> >>''''''''핵심 >>Dim 지불금액, 예약수량, 예약금액, 곱(1000), 지불액(1000), Temp1, Temp2, Num, j As Long >>''''''''인수 >>인수1 = Val(Left(Command, InStr(Command, " "))) >>인수2 = Val(Mid(Command, InStr(Command, " "))) >> >>''''''''입력 >>Open "d:\c_it\data\오후\abc0504.txt" For Input As #1 >> ''''''''최소값 >> >> For i = 1 To 인수2 >> Line Input #1, 버퍼 >> If i >= 인수1 Then >> >> ''''''''핵심코딩 >> 지불금액 = Val(Mid(버퍼, 48, 10)) >> 예약수량 = Val(Mid(버퍼, 18, 5)) >> 예약금액 = Val(Mid(버퍼, 23, 10)) >> >> If 지불금액 < 5000000 Then >> Num = Num + 1 >> 곱(Num) = 예약수량 * 예약금액 >> 지불액(Num) = Val(Mid(버퍼, 48, 10)) >> End If >> End If >> Next i >> ''''''''정렬 >> For i = 1 To Num >> For j = i To Num >> If 곱(i) < 곱(j) Or 곱(i) = 곱(j) And 지불액(i) < 지불액(j) Then >> >> Temp1 = 곱(i) >> 곱(i) = 곱(j) >> 곱(j) = Temp1 >> >> Temp2 = 지불액(i) >> 지불액(i) = 지불액(j) >> 지불액(j) = Temp2 >> >> End If >> Next j >> Next i >> >>Close #1 >>''''''''출력 >>Open "d:\c_it\data\오후\ans2.txt" For Output As #2 >> Print #2, 인수1, 인수2, 지불액(1) >>Close #2 >>End Sub >> >> |