Java Classroom
😳🤯Я ШОКОВАНИЙ! Неймовірна задача, яку мені відправили із сьогоднішньої співбесіди. 🙏🏻Сподіваюсь ви зараз у безпеці. Бережіть себе і читайте тільки у тому випадку, якщо все спокійно! Одного ранку у своїй шафці в школі Віктор виявив дивну записку📃: "Я — член…
❗️Обережно, спойлер! Якщо хочеш вирішити задачу пізніше — не читай текст далі!
Коротка відповідь: Число автора записки — 4, числа інших учасників: 5, 4, 4, 3, 3.
Пояснення:
Потрібно уважно читати задачу. Усі числа в задачі ВЖЕ збільшені НА секретне число автора. Тобто в клубі не 10 учасників, а , так само і діапазон секретних чисел не від 6 до 9, а від до . Давайте надалі позначимо число автора, як для зручності.
Спочатку може здатися, що відмінно підходить, адже тоді учасників 8, в 4 число менше, в 3 число більше, плюс сам автор, це 8 людей. Але насправді якщо число буде 2, то діапазон чисел вийде від 4 до 7 (6 - 2 = 4, 9 - 2 = 7), що неможливо.
Аби зрозуміти в якому діапазоні може бути секретне число, потрібно вивести нерівність.
Спробуємо використати 3: 6 - 3 = 3, отже 3 — найменше число в діапазоні. За умовою задачі, ще мінімум 3 людини (6 - 3 = 3) мають число менше, за автора. Яке? 2? Відповідно, не підходить.
Спробуємо використати 4:
- Діапазон чисел в такому разі від 6 - 4 = 2 до 9 - 4 = 5.
- Кількість учасників в такому разі 10 - 4 = 6. У 6 - 4 = 2 учасників число менше, ніж у автора, у 5 - 4 = 1 учасника — більше.
- Сума секретних чисел — 27 - 4 = 23.
Рахуємо. Якщо учасників всього 6, у двох число більше, ніж у автора, а у одного менше, то залишається ще 2 людини, в кого число таке саме, як у автора — 4. Тому вже маємо 3 * 4 = 12. У однієї людини число більше, ніж у автора, таке число одне — 5. Тепер маємо 12 + 5 * 1 = 17.
Віднімаємо від суми секретних чисел (23) нашу поточну суму (17) і отримуємо проміжний результат — 6. Відповідно, залишилося 2 людини, в кого число менше, ніж у автора. 6 / 2 = 3. Число 3 входить в діапазон.
Отже, робимо висновок, що учасників у клубі 6, зокрема автор, який має число 4. Інші учасники мають наступні числа (у порядку спадання): 5, 4, 4, 3, 3.
Пояснення:
Потрібно уважно читати задачу. Усі числа в задачі ВЖЕ збільшені НА секретне число автора. Тобто в клубі не 10 учасників, а
10 - (число автора)6 - (число автора)9 - (число автора)nСпочатку може здатися, що
n = 2Аби зрозуміти в якому діапазоні може бути секретне число, потрібно вивести нерівність.
6 - n <= n <= 9 - n | +n
6 <= 2n <= 9 | :2
3 <= n <= 4.5
Спробуємо використати 4:
- Діапазон чисел в такому разі від 6 - 4 = 2 до 9 - 4 = 5.
- Кількість учасників в такому разі 10 - 4 = 6. У 6 - 4 = 2 учасників число менше, ніж у автора, у 5 - 4 = 1 учасника — більше.
- Сума секретних чисел — 27 - 4 = 23.
Рахуємо. Якщо учасників всього 6, у двох число більше, ніж у автора, а у одного менше, то залишається ще 2 людини, в кого число таке саме, як у автора — 4. Тому вже маємо 3 * 4 = 12. У однієї людини число більше, ніж у автора, таке число одне — 5. Тепер маємо 12 + 5 * 1 = 17.
Віднімаємо від суми секретних чисел (23) нашу поточну суму (17) і отримуємо проміжний результат — 6. Відповідно, залишилося 2 людини, в кого число менше, ніж у автора. 6 / 2 = 3. Число 3 входить в діапазон.
Отже, робимо висновок, що учасників у клубі 6, зокрема автор, який має число 4. Інші учасники мають наступні числа (у порядку спадання): 5, 4, 4, 3, 3.
🔥3🤯3👍2
🔥Нове відео на каналі!👨🏻💻
Поговоримо про літературу для розробників, для тих, хто починає, і для тих, хто хоче покращити свої скіли!
P.S.: Там є я.🙈🤪
❗️Посилання: https://youtu.be/stIwXoRaYis
Поговоримо про літературу для розробників, для тих, хто починає, і для тих, хто хоче покращити свої скіли!
P.S.: Там є я.🙈🤪
❗️Посилання: https://youtu.be/stIwXoRaYis
🔥7👍3
🔥Усім привіт!
Завершальне відео курсу "Java для початківців". Усередині крутий анонс наступного курсу!👨🏻💻
❗️Відео ТУТ.❗️
Усім перемог! 😎
Завершальне відео курсу "Java для початківців". Усередині крутий анонс наступного курсу!👨🏻💻
❗️Відео ТУТ.❗️
Усім перемог! 😎
🔥12👏1
💻📩Тобі поставлено задачу.
💡В ході її аналізу стає зрозуміло, що потрібно зробити/використати структуру даних, в яку можна буде додавати елементи і діставати з кінця. Тобто, працює вона за принципом LIFO (last in, first out) – останнім зайшов, першим вийшов. Виконується робота з даною структурою завжди в один потік.
👇🏻Обирай варіант в тесті знизу і давай обговорювати його в коментарях.
💡В ході її аналізу стає зрозуміло, що потрібно зробити/використати структуру даних, в яку можна буде додавати елементи і діставати з кінця. Тобто, працює вона за принципом LIFO (last in, first out) – останнім зайшов, першим вийшов. Виконується робота з даною структурою завжди в один потік.
👇🏻Обирай варіант в тесті знизу і давай обговорювати його в коментарях.
👍4
Java Classroom
💻📩Тобі поставлено задачу. 💡В ході її аналізу стає зрозуміло, що потрібно зробити/використати структуру даних, в яку можна буде додавати елементи і діставати з кінця. Тобто, працює вона за принципом LIFO (last in, first out) – останнім зайшов, першим вийшов.…
❓Приклад задачі:
Написати програму, яка на вхід отримує рядок дужок
👨🏻💻Приклад виконання:
* Правильно буде
Написати програму, яка на вхід отримує рядок дужок
"()[]{}" і має сказати чи правильно вони закриті. Якщо відкриття і закриття послідовне – все добре, якщо дужки закриті не по черзі – неправильно. Дужки можуть бути тільки трьох типів перелічених зверху. 👨🏻💻Приклад виконання:
{{()[]}}{} – true;{([)]} – false (бо дужка ')' закриває квадратну дужку).** Правильно буде
{()[]} або {([])}.👍5
Як можна отримати поточні дату та час?
Anonymous Quiz
8%
new LocalDate()
68%
13%
11%
System.currentTimeMillis()
👍5
🙋🏻♂️Привіт.
Сьогодні в мережу потрапив пілотний випуск просунутого курсу з Java, канонічне продовження курсу для початківців. У відео більш чіткий план тем, які будуть розглянуті протягом курсу.
❗️Відео ТУТ.❗️
Усім перемог! 😎
Сьогодні в мережу потрапив пілотний випуск просунутого курсу з Java, канонічне продовження курсу для початківців. У відео більш чіткий план тем, які будуть розглянуті протягом курсу.
❗️Відео ТУТ.❗️
Усім перемог! 😎
🔥12
Java Classroom
🙋🏻♂️Привіт. Сьогодні в мережу потрапив пілотний випуск просунутого курсу з Java, канонічне продовження курсу для початківців. У відео більш чіткий план тем, які будуть розглянуті протягом курсу. ❗️Відео ТУТ.❗️ Усім перемог! 😎
🙋🏻♂️Привіт.
На даний момент часто проблеми з електропостачанням та доступом до Інтернету.😢 Найближчим часом ця проблема буде вирішена і я зможу знову активно записувати навчальний курс.
Розумію, що пауза і затримка доволі велика, але згодом знову будемо разом: вивчати Java, працювати, сплачувати податки і нищити тих, кого навіть називати на цьому каналі не хочу.
Слава Україні!🇺🇦
Усім перемог! 😎
На даний момент часто проблеми з електропостачанням та доступом до Інтернету.😢 Найближчим часом ця проблема буде вирішена і я зможу знову активно записувати навчальний курс.
Розумію, що пауза і затримка доволі велика, але згодом знову будемо разом: вивчати Java, працювати, сплачувати податки і нищити тих, кого навіть називати на цьому каналі не хочу.
Слава Україні!🇺🇦
Усім перемог! 😎
👍7🔥6👏1🙏1
🔥Усім привіт!
Відео про ArrayList на каналі. На словах пояснюю складність виконання операцій і все наочно показую в презентації.
У наступному відео поговоримо про О велике, які складності операцій бувають і повернемось до ArrayList, аби слова замінити чіткою математикою.
Надалі всі відео про колекції будуть містити складність відповідно до О.
❗️Відео ТУТ.❗️
Усім перемог! 😎
Відео про ArrayList на каналі. На словах пояснюю складність виконання операцій і все наочно показую в презентації.
У наступному відео поговоримо про О велике, які складності операцій бувають і повернемось до ArrayList, аби слова замінити чіткою математикою.
Надалі всі відео про колекції будуть містити складність відповідно до О.
❗️Відео ТУТ.❗️
Усім перемог! 😎
🔥12👍1
🔥Усім привіт!
Сьогодні мій курс було опубліковано на платформі "Київстар ТБ", курс безкоштовний для всіх користувачів. Щодо цього я дав інтерв'ю колегам з ТСН, вийшло дуже круто. Поговорили і про сам курс, і про перспективи Java, і про можливі шляхи розвитку.
📌Інтерв'ю зі мною на ТСН => КЛІК.
📌Курс на Київстар ТБ => КЛАК.
Усім перемог! 😎
Сьогодні мій курс було опубліковано на платформі "Київстар ТБ", курс безкоштовний для всіх користувачів. Щодо цього я дав інтерв'ю колегам з ТСН, вийшло дуже круто. Поговорили і про сам курс, і про перспективи Java, і про можливі шляхи розвитку.
📌Інтерв'ю зі мною на ТСН => КЛІК.
📌Курс на Київстар ТБ => КЛАК.
Усім перемог! 😎
ТСН.ua
Мову програмування Java можна опанувати за три-чотири місяці”, - інтервʼю з автором популярного курсу “Java для початківців” на…
ІТ-індустрія України стрімко розвивається, а разом з цим збільшується попит на вітчизняних IT-фахівців. Це одна з небагатьох сфер, яка під час повномасштабного вторгнення залишається стійкою, без великих втрат чи змін у підходах до роботи. Крім цього, айтівці…
👍9🔥5👏3
🙋🏻♂️Привіт!
❓Скажи, boolean займає 1 біт чи 8? А може 32?😏
👨🏻💻Поки я готую наступне відео (а воно вже майже готове), отримав цікавий коментар щодо розміру boolean в пам'яті.
Тип даних boolean дозволяє нам зберігати
🤨Але що, якщо я скажу, що boolean займає все ж таки 8 біт? А якщо я скажу, що 32 біти?.. Навіщо?..
Документація — посилання на специфікацію Java.
❗️Насправді, якщо у вас на співбесіді запитають про розміри примітивних типів даних в пам'яті, буде правильно відповісти, що для boolean однозначна відповідь невідома, оскільки це залежить від JVM та місця використання цього типу даних.
✅ Масив, що зберігає boolean, для одного елементу виділяє 1 байт (тобто 8 біт).
А ще ось така цитата зі специфікації:
"There are no Java virtual machine instructions solely dedicated to operations on boolean values. Instead, expressions in the Java programming language that operate on boolean values are compiled to use values of the Java virtual machine int data type."
Тобто, якщо перекладати, то:
"Не існує інструкцій JVM, присвячених виключно операціям з логічними значеннями. Натомість вирази на Java, які працюють із boolean, компілюються для використання int."
❗️Висновок: Одна локальна змінна boolean може займати 1 біт, 1 байт (8 біт) або 4 байти (32 біти), залежить від JVM та операції. Зазвичай boolean масив виділяє на 1 елемент 1 байт (8 біт). Під час використання булевих змінних в логічних операціях, для них виділяється 4 байти (32 біти).
🔬У кого є бажання поринути в деталі — СЮДИ.
❓Скажи, boolean займає 1 біт чи 8? А може 32?😏
👨🏻💻Поки я готую наступне відео (а воно вже майже готове), отримав цікавий коментар щодо розміру boolean в пам'яті.
Тип даних boolean дозволяє нам зберігати
true або false, тобто казати що щось істина або брехня. True✔️ та False✖️ можна інтерпретувати в значення 1 та 0. Тобто, може здаватися, що для зберігання даного значення нам потрібен 1 біт, якщо біт заповнений, то 1, якщо ні, то 0. Заповнений — true, ні — false. Все логічно і правильно!🤨Але що, якщо я скажу, що boolean займає все ж таки 8 біт? А якщо я скажу, що 32 біти?.. Навіщо?..
Документація — посилання на специфікацію Java.
❗️Насправді, якщо у вас на співбесіді запитають про розміри примітивних типів даних в пам'яті, буде правильно відповісти, що для boolean однозначна відповідь невідома, оскільки це залежить від JVM та місця використання цього типу даних.
✅ Масив, що зберігає boolean, для одного елементу виділяє 1 байт (тобто 8 біт).
А ще ось така цитата зі специфікації:
"There are no Java virtual machine instructions solely dedicated to operations on boolean values. Instead, expressions in the Java programming language that operate on boolean values are compiled to use values of the Java virtual machine int data type."
Тобто, якщо перекладати, то:
"Не існує інструкцій JVM, присвячених виключно операціям з логічними значеннями. Натомість вирази на Java, які працюють із boolean, компілюються для використання int."
❗️Висновок: Одна локальна змінна boolean може займати 1 біт, 1 байт (8 біт) або 4 байти (32 біти), залежить від JVM та операції. Зазвичай boolean масив виділяє на 1 елемент 1 байт (8 біт). Під час використання булевих змінних в логічних операціях, для них виділяється 4 байти (32 біти).
🔬У кого є бажання поринути в деталі — СЮДИ.
👍8🔥3
🔥Усім привіт!
Відео про
У відео також є пояснення бінарного пошуку.😏
❗️Відео ТУТ.❗️
Усім перемог! 😎
Відео про
"О" велике вже на каналі. Зрозуміємо в чому полягає суть розрахунку складності алгоритмів. Поговоримо знову про деякі методи ArrayList, але на цей раз з математичної точки зору. O(1), O(n), O(log(n)), O(n*log(n)) та O(n^2) більше не будуть незрозумілими літерами. У відео також є пояснення бінарного пошуку.😏
❗️Відео ТУТ.❗️
Усім перемог! 😎
👍7🔥3
Мені закинули питання із сьогоднішньої співбесіди. Передаю його вам:
У чому переваги та недоліки об'єктно-орієнтованого програмування (як в Java) перед функціональним та процедурним програмуванням?
#interview #question
Думки та відповіді сюди👇🏻
У чому переваги та недоліки об'єктно-орієнтованого програмування (як в Java) перед функціональним та процедурним програмуванням?
#interview #question
Думки та відповіді сюди👇🏻
👍4🤔1
Як зробити метод класу доступним ТІЛЬКИ усередині класу та в нащадках цього класу?
Anonymous Quiz
3%
Позначити його як private final.
21%
Позначити його як private.
69%
Позначити його як protected.
7%
Не вказувати модифікатор доступу.
Java Classroom
Мені закинули питання із сьогоднішньої співбесіди. Передаю його вам: У чому переваги та недоліки об'єктно-орієнтованого програмування (як в Java) перед функціональним та процедурним програмуванням? #interview #question Думки та відповіді сюди👇🏻
У чому переваги та недоліки об'єктно-орієнтованого програмування (як в Java) перед функціональним та процедурним програмуванням?
✔️Переваги:
Складні застосунки писати легше, адже все розбито на маленькі частини. Такий код легше підтримувати. Зручне перевикористання вже існуючого функціоналу, можливість його розширення/оновлення за допомогою успадкування, без потреби в дуплікації. Зазвичай, неважливі деталі реалізації кожного окремого елементу програми, адже клас і його методи можуть пояснити що роблять тільки своїми назвами та описом.
✖️Недоліки:
Великі теоретичні знання та розуміння підходів ООП необхідне для написання навіть простих програм. Складна організація програми знижує швидкодію застосунку та збільшує витрати пам’яті. Часові затрати на проектування часто більш, ніж при ФП чи ПП.
#interview #answer
З чимось незгоден чи є що додати — обов'язково напиши в коментарях!👇🏻
✔️Переваги:
Складні застосунки писати легше, адже все розбито на маленькі частини. Такий код легше підтримувати. Зручне перевикористання вже існуючого функціоналу, можливість його розширення/оновлення за допомогою успадкування, без потреби в дуплікації. Зазвичай, неважливі деталі реалізації кожного окремого елементу програми, адже клас і його методи можуть пояснити що роблять тільки своїми назвами та описом.
✖️Недоліки:
Великі теоретичні знання та розуміння підходів ООП необхідне для написання навіть простих програм. Складна організація програми знижує швидкодію застосунку та збільшує витрати пам’яті. Часові затрати на проектування часто більш, ніж при ФП чи ПП.
#interview #answer
З чимось незгоден чи є що додати — обов'язково напиши в коментарях!👇🏻
👍7🔥2
Яка складність алгоритму найкраща з наведених?
Anonymous Quiz
46%
O(n)
10%
O(n*log(n))
7%
O(2^n)
36%
O(log(n))
🤔2
Яка складність алгоритму найгірша (!) з наведених?
Anonymous Quiz
63%
O(n^3)
13%
O(n*log(n))
9%
O(n^2)
15%
O(n)
Яка складність алгоритму бінарного пошуку (коли відбувається ділення масиву даних навпіл)?
Anonymous Quiz
9%
O(n)
69%
O(log(n))
22%
O(n*log(n))
👍1
Зачекалися?🔥
Відео про
❗️Відео ТУТ.❗️
Усім перемог! 😎
Відео про
LinkedList, розберемо як він працює та що під капотом, порівняємо його з ArrayList, оглядово покажу черги та їх використання з LinkedList. А ще на уроці напишемо свій власний SinglyLinkedList.😳❗️Відео ТУТ.❗️
Усім перемог! 😎
👍10🔥1