Challenge 03 - Sorting Flights by Price
In this challenge, you are going to be attempting to sort a list of Flight
s based on their price from highest to lowest.
You will have to implement the SortByPrice
function that takes in a slice of type Flight
and returns the sorted list of Flights.
In order to help you see what is going on, you have been provided a very quick printFlights function which you can use to print the flights out.
Helpful Article
See the Solution
View Solution
package main
import (
"fmt"
"sort"
)
type Flight struct {
Origin string
Destination string
Price int
}
type ByPrice []Flight
func (p ByPrice) Len() int {
return len(p)
}
func (p ByPrice) Swap(i, j int) {
p[i], p[j] = p[j], p[i]
}
func (p ByPrice) Less(i, j int) bool {
return p[i].Price > p[j].Price
}
func SortByPrice(flights []Flight) []Flight {
sort.Sort(ByPrice(flights))
return flights
}
func main() {
flights := []Flight{
Flight{Price: 30},
Flight{Price: 20},
Flight{Price: 50},
Flight{Price: 1000},
}
sort.Sort(ByPrice(flights))
fmt.Println(flights)
}
Further Reading:
If you like this challenge then you may also appreciate some of the following articles on the site: