Upload files to "/"
This commit is contained in:
parent
cf2c835ad8
commit
ebd7daea4a
282
TUGAS_4_2_MK_DAA_NATASYA_POETRI_HANYORO (1).ipynb
Normal file
282
TUGAS_4_2_MK_DAA_NATASYA_POETRI_HANYORO (1).ipynb
Normal file
@ -0,0 +1,282 @@
|
|||||||
|
{
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 0,
|
||||||
|
"metadata": {
|
||||||
|
"colab": {
|
||||||
|
"provenance": []
|
||||||
|
},
|
||||||
|
"kernelspec": {
|
||||||
|
"name": "python3",
|
||||||
|
"display_name": "Python 3"
|
||||||
|
},
|
||||||
|
"language_info": {
|
||||||
|
"name": "python"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"source": [
|
||||||
|
"\"PROGRAM URUTAN TERPANJANG MENGGUNAKAN PHYTON\""
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"id": "GYqMVkNM-IMA"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {
|
||||||
|
"id": "056f25d6"
|
||||||
|
},
|
||||||
|
"source": [
|
||||||
|
"### Program untuk Mencari Urutan Angka Identik Berurutan Terpanjang\n",
|
||||||
|
"\n",
|
||||||
|
"Program ini akan mencari segmen berurutan terpanjang dalam daftar angka input di mana semua angka dalam segmen tersebut adalah sama. Input angka akan dipisahkan oleh spasi."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {
|
||||||
|
"colab": {
|
||||||
|
"base_uri": "https://localhost:8080/"
|
||||||
|
},
|
||||||
|
"id": "95cdf746",
|
||||||
|
"outputId": "e98840bb-a83a-4901-e34d-7410c4e06786"
|
||||||
|
},
|
||||||
|
"source": [
|
||||||
|
"# String input yang berisi angka-angka (dapat Anda modifikasi)\n",
|
||||||
|
"# Angka dipisahkan oleh spasi.\n",
|
||||||
|
"input_str = \"10 20 20 20 20 5 15 25 30 1 2 3 4 4 4 4 4 4 4 5 6 7 8 9 9 9 10 9 8 7 6 5 4 100 100 101 102 103\"\n",
|
||||||
|
"\n",
|
||||||
|
"# Mengurai string input menjadi daftar bilangan bulat\n",
|
||||||
|
"# strip().isdigit() digunakan untuk menangani potensi spasi ganda\n",
|
||||||
|
"numbers = [int(num) for num in input_str.split() if num.strip().isdigit()]\n",
|
||||||
|
"\n",
|
||||||
|
"print(\"Daftar angka input:\", numbers)"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"output_type": "stream",
|
||||||
|
"name": "stdout",
|
||||||
|
"text": [
|
||||||
|
"Daftar angka input: [10, 20, 20, 20, 20, 5, 15, 25, 30, 1, 2, 3, 4, 4, 4, 4, 4, 4, 4, 5, 6, 7, 8, 9, 9, 9, 10, 9, 8, 7, 6, 5, 4, 100, 100, 101, 102, 103]\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {
|
||||||
|
"colab": {
|
||||||
|
"base_uri": "https://localhost:8080/"
|
||||||
|
},
|
||||||
|
"id": "6d5bcf75",
|
||||||
|
"outputId": "ea57e47a-e005-4cb5-a82b-886d0794cd82"
|
||||||
|
},
|
||||||
|
"source": [
|
||||||
|
"def find_longest_identical_contiguous_subsequence(arr):\n",
|
||||||
|
" \"\"\"\n",
|
||||||
|
" Mencari urutan berurutan terpanjang dari angka yang identik dalam sebuah list.\n",
|
||||||
|
"\n",
|
||||||
|
" Args:\n",
|
||||||
|
" arr (list): Daftar bilangan bulat.\n",
|
||||||
|
"\n",
|
||||||
|
" Returns:\n",
|
||||||
|
" tuple: Sebuah tuple berisi (longest_sequence, length),\n",
|
||||||
|
" di mana longest_sequence adalah list urutan terpanjang yang ditemukan,\n",
|
||||||
|
" dan length adalah panjangnya.\n",
|
||||||
|
" \"\"\"\n",
|
||||||
|
" if not arr:\n",
|
||||||
|
" return [], 0\n",
|
||||||
|
"\n",
|
||||||
|
" max_length = 0\n",
|
||||||
|
" longest_sequence = []\n",
|
||||||
|
"\n",
|
||||||
|
" current_length = 0\n",
|
||||||
|
" current_sequence = []\n",
|
||||||
|
"\n",
|
||||||
|
" for i in range(len(arr)):\n",
|
||||||
|
" # Jika ini elemen pertama atau elemen saat ini sama dengan elemen sebelumnya\n",
|
||||||
|
" if i == 0 or arr[i] == arr[i-1]:\n",
|
||||||
|
" current_length += 1\n",
|
||||||
|
" current_sequence.append(arr[i])\n",
|
||||||
|
" else:\n",
|
||||||
|
" # Urutan angka identik terputus. Periksa apakah urutan saat ini lebih panjang dari yang terpanjang sejauh ini.\n",
|
||||||
|
" if current_length > max_length:\n",
|
||||||
|
" max_length = current_length\n",
|
||||||
|
" longest_sequence = current_sequence\n",
|
||||||
|
" # Reset untuk memulai urutan baru\n",
|
||||||
|
" current_length = 1\n",
|
||||||
|
" current_sequence = [arr[i]]\n",
|
||||||
|
"\n",
|
||||||
|
" # Setelah loop selesai, periksa urutan terakhir (jika itu yang terpanjang)\n",
|
||||||
|
" if current_length > max_length:\n",
|
||||||
|
" max_length = current_length\n",
|
||||||
|
" longest_sequence = current_sequence\n",
|
||||||
|
"\n",
|
||||||
|
" return longest_sequence, max_length\n",
|
||||||
|
"\n",
|
||||||
|
"# Memanggil fungsi untuk menemukan urutan terpanjang\n",
|
||||||
|
"longest_sequence, length = find_longest_identical_contiguous_subsequence(numbers)\n",
|
||||||
|
"\n",
|
||||||
|
"print(f\"Urutan identik berurutan terpanjang: {longest_sequence}\")\n",
|
||||||
|
"print(f\"Panjang urutan: {length}\")"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"output_type": "stream",
|
||||||
|
"name": "stdout",
|
||||||
|
"text": [
|
||||||
|
"Urutan identik berurutan terpanjang: [4, 4, 4, 4, 4, 4, 4]\n",
|
||||||
|
"Panjang urutan: 7\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"source": [
|
||||||
|
"\"PROGRAM URUTAN TERPANJANG MENGGUNAKAN C++"
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"id": "d7xnFdFB_Q37"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {
|
||||||
|
"colab": {
|
||||||
|
"base_uri": "https://localhost:8080/"
|
||||||
|
},
|
||||||
|
"id": "e9d02035",
|
||||||
|
"outputId": "8ddbd38a-664b-4d39-caa5-68ebdf1435fd"
|
||||||
|
},
|
||||||
|
"source": [
|
||||||
|
"%%writefile longest_sequence.cpp\n",
|
||||||
|
"#include <iostream>\n",
|
||||||
|
"#include <vector>\n",
|
||||||
|
"#include <string>\n",
|
||||||
|
"#include <sstream>\n",
|
||||||
|
"#include <algorithm>\n",
|
||||||
|
"\n",
|
||||||
|
"// Fungsi untuk mencari urutan berurutan terpanjang dari angka yang identik dalam sebuah vector.\n",
|
||||||
|
"std::pair<std::vector<int>, int> find_longest_identical_contiguous_subsequence(const std::vector<int>& arr) {\n",
|
||||||
|
" if (arr.empty()) {\n",
|
||||||
|
" return {{}, 0};\n",
|
||||||
|
" }\n",
|
||||||
|
"\n",
|
||||||
|
" int max_length = 0;\n",
|
||||||
|
" std::vector<int> longest_sequence;\n",
|
||||||
|
"\n",
|
||||||
|
" int current_length = 0;\n",
|
||||||
|
" std::vector<int> current_sequence;\n",
|
||||||
|
"\n",
|
||||||
|
" for (size_t i = 0; i < arr.size(); ++i) {\n",
|
||||||
|
" // Jika ini elemen pertama atau elemen saat ini sama dengan elemen sebelumnya\n",
|
||||||
|
" if (i == 0 || arr[i] == arr[i-1]) {\n",
|
||||||
|
" current_length++;\n",
|
||||||
|
" current_sequence.push_back(arr[i]);\n",
|
||||||
|
" } else {\n",
|
||||||
|
" // Urutan angka identik terputus. Periksa apakah urutan saat ini lebih panjang dari yang terpanjang sejauh ini.\n",
|
||||||
|
" if (current_length > max_length) {\n",
|
||||||
|
" max_length = current_length;\n",
|
||||||
|
" longest_sequence = current_sequence;\n",
|
||||||
|
" }\n",
|
||||||
|
" // Reset untuk memulai urutan baru\n",
|
||||||
|
" current_length = 1;\n",
|
||||||
|
" current_sequence = {arr[i]};\n",
|
||||||
|
" }\n",
|
||||||
|
" }\n",
|
||||||
|
"\n",
|
||||||
|
" // Setelah loop selesai, periksa urutan terakhir (jika itu yang terpanjang)\n",
|
||||||
|
" if (current_length > max_length) {\n",
|
||||||
|
" max_length = current_length;\n",
|
||||||
|
" longest_sequence = current_sequence;\n",
|
||||||
|
" }\n",
|
||||||
|
"\n",
|
||||||
|
" return {longest_sequence, max_length};\n",
|
||||||
|
"}\n",
|
||||||
|
"\n",
|
||||||
|
"int main() {\n",
|
||||||
|
" // String input yang berisi angka-angka (dapat Anda modifikasi)\n",
|
||||||
|
" std::string input_str = \"10 20 20 20 20 5 15 25 30 1 2 3 4 4 4 4 4 4 4 5 6 7 8 9 9 9 10 9 8 7 6 5 4 100 100 101 102 103\";\n",
|
||||||
|
"\n",
|
||||||
|
" // Menguraikan string input menjadi daftar bilangan bulat\n",
|
||||||
|
" std::vector<int> numbers;\n",
|
||||||
|
" std::stringstream ss(input_str);\n",
|
||||||
|
" std::string segment;\n",
|
||||||
|
" int num;\n",
|
||||||
|
"\n",
|
||||||
|
" while (ss >> segment) {\n",
|
||||||
|
" try {\n",
|
||||||
|
" num = std::stoi(segment);\n",
|
||||||
|
" numbers.push_back(num);\n",
|
||||||
|
" } catch (const std::invalid_argument& e) {\n",
|
||||||
|
" // Abaikan non-angka\n",
|
||||||
|
" continue;\n",
|
||||||
|
" } catch (const std::out_of_range& e) {\n",
|
||||||
|
" // Abaikan angka yang terlalu besar/kecil\n",
|
||||||
|
" continue;\n",
|
||||||
|
" }\n",
|
||||||
|
" }\n",
|
||||||
|
"\n",
|
||||||
|
" std::cout << \"Daftar angka input: \";\n",
|
||||||
|
" for (int n : numbers) {\n",
|
||||||
|
" std::cout << n << \" \";\n",
|
||||||
|
" }\n",
|
||||||
|
" std::cout << std::endl;\n",
|
||||||
|
"\n",
|
||||||
|
" // Memanggil fungsi untuk menemukan urutan terpanjang\n",
|
||||||
|
" std::pair<std::vector<int>, int> result = find_longest_identical_contiguous_subsequence(numbers);\n",
|
||||||
|
"\n",
|
||||||
|
" std::cout << \"Urutan identik berurutan terpanjang: \";\n",
|
||||||
|
" for (int n : result.first) {\n",
|
||||||
|
" std::cout << n << \" \";\n",
|
||||||
|
" }\n",
|
||||||
|
" std::cout << std::endl;\n",
|
||||||
|
" std::cout << \"Panjang urutan: \" << result.second << std::endl;\n",
|
||||||
|
"\n",
|
||||||
|
" return 0;\n",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"output_type": "stream",
|
||||||
|
"name": "stdout",
|
||||||
|
"text": [
|
||||||
|
"Writing longest_sequence.cpp\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {
|
||||||
|
"colab": {
|
||||||
|
"base_uri": "https://localhost:8080/"
|
||||||
|
},
|
||||||
|
"id": "d9e4b43d",
|
||||||
|
"outputId": "c0581caa-2fce-46a9-ebad-9acdca2ff2f9"
|
||||||
|
},
|
||||||
|
"source": [
|
||||||
|
"!g++ longest_sequence.cpp -o longest_sequence\n",
|
||||||
|
"!./longest_sequence"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"output_type": "stream",
|
||||||
|
"name": "stdout",
|
||||||
|
"text": [
|
||||||
|
"Daftar angka input: 10 20 20 20 20 5 15 25 30 1 2 3 4 4 4 4 4 4 4 5 6 7 8 9 9 9 10 9 8 7 6 5 4 100 100 101 102 103 \n",
|
||||||
|
"Urutan identik berurutan terpanjang: 4 4 4 4 4 4 4 \n",
|
||||||
|
"Panjang urutan: 7\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user