¹®Á¦1
(¿¹¾à¼ö·® * ¿¹¾à±Ý¾×)ÀÇ °ªÀÌ 7000000 ÀÌ»óÀÎ ÀÚ·á¿¡ ´ëÇÏ¿© ÁöºÒ±Ý¾×ÀÇ °ª¿¡ µû¶ó ¿À¸§Â÷¼øÀ¸·Î Á¤·ÄÇÏ¿´À» ¶§ ¸¶Áö¸· ÀÚ·áÀÇ ¿¹¾àÀÏÀÚ¸¦ Ãâ·ÂÇϽÿÀ. ´Ü, µ¿Àϰª ¹ß»ý½Ã ÀϷùøÈ£¿¡ µû¶ó ¿À¸§Â÷¼øÀ¸·Î Á¤·ÄÇϽÿÀ.¡¡¡¡(¡Ø°á°ú°ªÀº ¼ö°ËÀÚ PCÀÇ C:\C_it\data\Ans1.txt ÆÄÀÏ¿¡ Ãâ·ÂµÇµµ·Ï ÇÁ·Î±×·¥À» ÀÛ¼º ÇÒ °Í)
Option Explicit
Sub main()
''Çʼö º¯¼ö ¼±¾ð
Dim Àμö1, Àμö2, i, ¹öÆÛ As Variant
''ÇÙ½É º¯¼ö ¼±¾ð
Dim ¿¹¾à¼ö·®, ¿¹¾à±Ý¾×, ÁöºÒ±Ý¾×(1000), ¿¹¾àÀÏÀÚ(1000), ÀϷùøÈ£(1000), j, Num, Temp As Variant
''Àμö ó¸®
Àμö1 = Val(Left(Command, InStr(Command, " ")))
Àμö2 = Val(Mid(Command, InStr(Command, " ")))
''ÀÔ·Â ÆÄÀÏ Ã³¸®
Open "c:\c_it\data\abc04.txt" For Input As #1
For i = 1 To Àμö2
Line Input #1, ¹öÆÛ
If i > Àμö1 Then
''º¯¼ö ÀúÀå
¿¹¾à¼ö·® = Val(Mid(¹öÆÛ, 18, 5))
¿¹¾à±Ý¾× = Val(Mid(¹öÆÛ, 23, 10))
''¹è¿ º¯¼ö ±¸Çϱâ
If (¿¹¾à¼ö·® * ¿¹¾à±Ý¾×) >= 7000000 Then
Num = Num + 1
ÁöºÒ±Ý¾×(Num) = Val(Mid(¹öÆÛ, 48, 10))
¿¹¾àÀÏÀÚ(Num) = Trim(Mid(¹öÆÛ, 8, 10))
ÀϷùøÈ£(Num) = Trim(Mid(¹öÆÛ, 1, 7))
End If
End If
Next i
''ÁöºÒ±Ý¾× ¿À¸§Â÷¼ø or _ (ÁöºÒ±Ý¾×°°À½ and ÀϷùøÈ£ ¿À¸§Â÷¼ø)
For i = 1 To Num
For j = i To Num
If ÁöºÒ±Ý¾×(i) > ÁöºÒ±Ý¾×(j) Or _
(ÁöºÒ±Ý¾×(i) = ÁöºÒ±Ý¾×(j) And ÀϷùøÈ£(i) > ÀϷùøÈ£(j)) Then
Temp = ÁöºÒ±Ý¾×(i)
ÁöºÒ±Ý¾×(i) = ÁöºÒ±Ý¾×(j)
ÁöºÒ±Ý¾×(j) = Temp
Temp = ÀϷùøÈ£(i)
ÀϷùøÈ£(i) = ÀϷùøÈ£(j)
ÀϷùøÈ£(j) = Temp
End If
Next j
Next i
Close #1
''Ãâ·Â ÆÄÀÏ Ã³¸®
Open "c:\c_it\data\ans1.txt" For Output As #2
Print #2, Àμö1, Àμö2, ¿¹¾àÀÏÀÚ(Num)
Close #2
End Sub