Upload files to "/"

This commit is contained in:
202510715170 NATASYA POETRI HANYORO 2026-04-21 18:17:13 +07:00
parent cf2c835ad8
commit ebd7daea4a

View 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"
]
}
]
}
]
}