Контест Junior Структуры, методы и интерфейсы обновлено
Сортировка структур по нескольким ключам на Go
Условие
Отсортируйте сотрудников: по отделу по возрастанию, внутри отдела по зарплате по убыванию, при равной зарплате по имени по возрастанию (сравнение строк побайтовое).
Ввод: n (1 ≤ n ≤ 1000), затем n строк имя отдел зарплата.
Вывод: n строк в том же формате.
Пример
5
anna dev 300
boris qa 200
vera dev 300
gleb dev 500
dina qa 200
gleb dev 500
anna dev 300
vera dev 300
boris qa 200
dina qa 200
Как подойти
Слайс структур, slices.SortFunc и cmp.Or из трёх cmp.Compare.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
Площади фигур через интерфейс Shape на Go
Следующий вопрос
Что выведет Go: встраивание и вызов метода
Ещё по теме «Структуры, методы и интерфейсы»
- LRU-кеш на Go: map и двусвязный список
- Очередь с приоритетом через container/heap на Go
- Что выведет Go: интерфейс хранит копию значения
- Что выведет Go: method value и defer копируют ресивер
- Что выведет Go: nil-указатель в интерфейсе error
- Что выведет Go: ресиверы по значению и указателю
- Что выведет Go: сравнение структур и указателей
- Что выведет Go: type switch