Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

VonNeumannAirport/남상협

From ZeroWiki

Input 과 output 예제가 왜 그렇게 나왔는지 이해 하는데에서 많은 오해를 해서 의도하지 않은 삽질을 하게 되었습니다. 나름대로 시작은 testCase 만들면서 했지만 제대로 테스트 케이스 만들면서 진행은 하지를 못했습니다. 그래서 테스트 케이스는 올리지 않았습니다.

class Airport:
    def __init__(self,cityNum,trafficList, configureList):
        self.cityNum = cityNum
        self.trafficList = []
        self.configureList = []
        for trafficData in trafficList:
            trafficOfCity = []
            for traffic in trafficData[:-1]:
                trafficOfCity.append(int(traffic))  
            self.trafficList.append(trafficOfCity)

        for configureData in configureList:
            configureOfCity = []
            for configure in configureData:
                eachConfigure = []
                for conf in configure[:-1]:
                    eachConfigure.append(int(conf))
                configureOfCity.append(eachConfigure)
            self.configureList.append(configureOfCity)
    def calculateTraffic(self):
        trafficResult = []
        confNum=1
        for configure in self.configureList:
            traffic=0
            for con in configure[0]:
                departureGate = con
                for i in range(2,len(self.trafficList[departureGate-1]),2):
                    arrivalGate = self.trafficList[departureGate-1][i]
                    traffic+=(abs(configure[1].index(arrivalGate)-configure[0].index(departureGate))+1)*self.trafficList[departureGate-1][i+1]
                            
            trafficResult.append((confNum,traffic))
            confNum+=1
        trafficResult.sort(lambda x,y: cmp(x[1],y[1]))
        return trafficResult
class VonNeumannAirport:
    def __init__(self):
        self.airportList = []
    def readFile(self):
        Data = file("airport.in")
        cityNum = int(Data.readline().split(" ")[0])
        while cityNum != 0:
            trafficList = []
            configureList = []
            for i in range(0,cityNum):
                trafficList.append(Data.readline().split(" "))
            while Data.readline().split(" ")[0] != '0':
                readLineOne = Data.readline().split(" ")
                readLineTwo = Data.readline().split(" ")
                configureList.append((readLineOne,readLineTwo))
            airport = Airport(cityNum, trafficList, configureList)
            self.airportList.append(airport)
            cityNum = int(Data.readline().split(" ")[0])
    def calculateAllTraffic(self):
        result = []
        for airport in self.airportList:
            result.append(airport.calculateTraffic())
        return result
vonAirport = VonNeumannAirport()
vonAirport.readFile()        
AllResult = vonAirport.calculateAllTraffic()        
for result in AllResult:
    print "Configuration   Load"
    for case in result:
        print str(case[0]) + "               " + str(case[1])