swizard (swizard) wrote,
swizard
swizard

Categories:

Не заметил слона

Я периодически на досуге стараюсь решать всяческие программистские микро-задачки, на которые набредаю в интернете. Чисто для поддержания минимальной формы, чтобы к icfcp мозг не успел засохнуть.

На этот раз обнаружил вот такую: http://wunderfund.io/dev_job — это типа тестовая задача для вакансии разработчика в какой-то мутной конторе.

Ну я, типа, скачал данные, повозился достаточно продолжительное время с решением (мне вообще туго даются задачки олимпиадного типа, которые решаются через динамическое программирование), расчитал ответ, сабмичу — хуй. Думаю: наверно чё-то упустил в задании. Всё внимательно перечитываю, да нет, вроде всё верно. Рефрешу страницу, перекачиваю данные (мож изменились), пересчитываю заново, сабмичу — опять хуй.

Тут меня уже, надо сказать, одолела злоба. Особенно подбешивало описание задачи в разделе вакансии: "Если ты нам подходишь, решение задачки не составит для тебя труда." :) А тут, получается, что решение для меня составляет труд, и моя кандидатура не подходит на вакансию какого-то рядового плюсового разработчика, например.

Ну ладно. Потратил дополнительное время, нагенерил рандомных небольших тесткейсов и сравнил результаты с эталонами, которые получил из брутфорсной реализации. Всё верно же. Ок, опять рефрешу страницу, сабмичу результат — опять хуй.

Ну ок, в итоге совсем забиваю (и так дофига времени потратил) и, в расстроенных чувствах, ухожу спать.

А сегодня меня мне вдруг в голову пришла мысль. Я её проверил, и мои самые страшные подозрения подтвердились!

Короче, дело было так:

Я скачиваю .csv-шку с сайта и открываю её штатным маковским Numbers. Вижу примерно такое:



Ну хорошо, думаю, мак глупый, хочет в качестве разделителя столбцов точку с запятой согласно локали, а там просто запятая. Ну там данные простые, поэтому я не мучаюсь с форматированием, а просто тупо беру и забиваю в коде в данные всё, что после запятой (типа, второй столбец — 7, 688, 682 и тд).

Сегодня до меня дошло посмотреть в исходник .csv-шки. Оказывается, это нихрена не 7 и 688, а 7000 и 6880 =) А табличный процессор терминирующие нули радостно откусил, потому что, согласно тем же настройкам локали, запятая является разделителем дробной части числа. И "0,7000" оказалось не двумя столбцами с "0" и "7000", а одним столбцом с числом "0.7".

Короче, с правильными данными результат у меня-таки сошёлся. Но самое обидное даже не в этом, а в том, что с этими данными никакой код можно было вообще не писать — достаточно просто на них пристально посмотреть и воспользоваться калькулятором :(
Tags: code, daily, fail, programming
Subscribe

  • У нас есть Rust, поэтому C++ больше не нужен.

    Просто чудесный пост у thesz, наглядно демонстрирующий мой лозунг из сабжа. Давайте пройдёмся по пунктам: > Большое неудобство,…

  • а вот, например, ещё вакансии

    Собственно, образовалась ещё вакансия. Нам нужно несколько человек, задач много, они все (как это водится) инновационные и интересные, минимум…

  • Вернуть итератор

    А между тем, зацените, в nightly rust научились делать вот так: #![feature(conservative_impl_trait)] fn numbers() -> impl…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 12 comments

  • У нас есть Rust, поэтому C++ больше не нужен.

    Просто чудесный пост у thesz, наглядно демонстрирующий мой лозунг из сабжа. Давайте пройдёмся по пунктам: > Большое неудобство,…

  • а вот, например, ещё вакансии

    Собственно, образовалась ещё вакансия. Нам нужно несколько человек, задач много, они все (как это водится) инновационные и интересные, минимум…

  • Вернуть итератор

    А между тем, зацените, в nightly rust научились делать вот так: #![feature(conservative_impl_trait)] fn numbers() -> impl…