diff --git a/advanced-level/create_problems.sh b/advanced-level/create_problems.sh
new file mode 100644
index 0000000..e69de29
diff --git a/advanced-level/problem-1/log b/advanced-level/problem-1/log
new file mode 100644
index 0000000..4b4c7ef
--- /dev/null
+++ b/advanced-level/problem-1/log
@@ -0,0 +1,5 @@
+INFO: Application started
+ERROR: Failed to connect to the database
+INFO: Processing request ID 123
+ERROR: Timeout while waiting for response
+INFO: Shutdown complete
diff --git a/advanced-level/problem-1/problem-1.txt b/advanced-level/problem-1/problem-1.txt
new file mode 100644
index 0000000..3d05790
--- /dev/null
+++ b/advanced-level/problem-1/problem-1.txt
@@ -0,0 +1,3 @@
+Problem-1: Docker Log Analyzer
+Build a script that reads a Docker log file and returns error messages with timestamps.
+ Hint: Look for keywords like "ERROR" or "Exception" using regex.
diff --git a/advanced-level/problem-1/run.sh b/advanced-level/problem-1/run.sh
new file mode 100755
index 0000000..6adb683
--- /dev/null
+++ b/advanced-level/problem-1/run.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+# Make logger.py executable
+chmod 700 solution-1.py
+
+# Make script.sh executable
+chmod 700 solution.sh
+
+echo "Permissions set to 700 for logger.py and script.sh."
+
+echo "Running ./script.sh file to check Error logs"
+
+./solution.sh
\ No newline at end of file
diff --git a/advanced-level/problem-1/solution-1.py b/advanced-level/problem-1/solution-1.py
new file mode 100755
index 0000000..2982f22
--- /dev/null
+++ b/advanced-level/problem-1/solution-1.py
@@ -0,0 +1,17 @@
+def check_for_log_errors(log_file_path):
+ try:
+ with open(log_file_path,'r') as file:
+
+ lines=file.readlines()
+ errors=[error for error in lines if 'ERROR' in error]
+ if errors:
+ print('Error found in the log file')
+ for error in errors:
+ print(error.strip())
+ else:
+ print('No error found')
+ except FileNotFoundError:
+ print(f"Log file {log_file_path} not found.")
+if __name__=="__main__":
+ log_file_path="log"
+ check_for_log_errors(log_file_path)
diff --git a/advanced-level/problem-1/solution.sh b/advanced-level/problem-1/solution.sh
new file mode 100755
index 0000000..dc7c0fd
--- /dev/null
+++ b/advanced-level/problem-1/solution.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+PYTHON_SCRIPT='solution-1.py'
+INTERVAL=10
+
+echo "staring the log checker.Press Ctrl+C for termination"
+
+while true
+do
+ echo "running the python script to check for errors"
+ python3 "$PYTHON_SCRIPT"
+ echo "Explicitely sleeping for interval seconds"
+ sleep $INTERVAL
+done
diff --git a/advanced-level/problem-10/problem-10.txt b/advanced-level/problem-10/problem-10.txt
new file mode 100644
index 0000000..a52f189
--- /dev/null
+++ b/advanced-level/problem-10/problem-10.txt
@@ -0,0 +1,2 @@
+Implement a simple .env file loader for config in DevOps.
+ Hint: Use dotenv library or parse lines manually and set in os.environ.
diff --git a/advanced-level/problem-10/solution-10.py b/advanced-level/problem-10/solution-10.py
new file mode 100644
index 0000000..f14ea32
--- /dev/null
+++ b/advanced-level/problem-10/solution-10.py
@@ -0,0 +1,10 @@
+from dotenv import load_dotenv
+import os
+
+# Load variables from .env into environment
+load_dotenv(dotenv_path="solution.env")
+
+# Access them
+print("DB User:", os.getenv("DB_USER"))
+print("DB Password:", os.getenv("DB_PASS"))
+print("Debug Mode:", os.getenv("DEBUG"))
diff --git a/advanced-level/problem-10/solution.env b/advanced-level/problem-10/solution.env
new file mode 100644
index 0000000..03d7b88
--- /dev/null
+++ b/advanced-level/problem-10/solution.env
@@ -0,0 +1,3 @@
+DB_USER=admin
+DB_PASS=secret123
+DEBUG=True
diff --git a/advanced-level/problem-2/problem-2.txt b/advanced-level/problem-2/problem-2.txt
new file mode 100644
index 0000000..a1bc07a
--- /dev/null
+++ b/advanced-level/problem-2/problem-2.txt
@@ -0,0 +1,2 @@
+Scrape a sample blog page and return all titles within
tags.
+ Hint: Use BeautifulSoup and requests.
diff --git a/advanced-level/problem-2/solution-2.py b/advanced-level/problem-2/solution-2.py
new file mode 100644
index 0000000..109f9c8
--- /dev/null
+++ b/advanced-level/problem-2/solution-2.py
@@ -0,0 +1,25 @@
+import requests
+from bs4 import BeautifulSoup
+
+def get_h2_titles(url):
+ # send HTTP GET request
+ resp = requests.get(url)
+ resp.raise_for_status() # raise error for bad status codes
+
+ # parse HTML
+ soup = BeautifulSoup(resp.text, "html.parser")
+
+ # find all tags
+ h2_tags = soup.find_all("h2")
+ print(h2_tags)
+
+ # extract their text
+ titles = [h2.get_text(strip=True) for h2 in h2_tags]
+ return titles
+
+if __name__ == "__main__":
+ url = "https://medium.com/@noureldin_z3r0/how-to-write-the-perfect-blog-post-my-10-000-word-journey-7b5b38525848"
+ titles = get_h2_titles(url)
+ print("H2 titles found:")
+ for idx, t in enumerate(titles, 1):
+ print(f"{idx}. {t}")
diff --git a/advanced-level/problem-3/problem-3.txt b/advanced-level/problem-3/problem-3.txt
new file mode 100644
index 0000000..42860ae
--- /dev/null
+++ b/advanced-level/problem-3/problem-3.txt
@@ -0,0 +1,3 @@
+Validate a dynamic JSON input against a predefined schema before database insertion.
+ Hint: Use jsonschema library or manually check key types.
+
diff --git a/advanced-level/problem-3/solution-3.py b/advanced-level/problem-3/solution-3.py
new file mode 100644
index 0000000..3330cb0
--- /dev/null
+++ b/advanced-level/problem-3/solution-3.py
@@ -0,0 +1,26 @@
+from jsonschema import validate, ValidationError
+
+# Define the schema
+schema = {
+ "type": "object",
+ "properties": {
+ "name": {"type": "string"},
+ "age": {"type": "integer"},
+ "email": {"type": "string", "format": "email"}
+ },
+ "required": ["name", "age", "email"]
+}
+
+# Example JSON input
+data = {
+ "name": "Muntasir Rahman Saikat",
+ "age": 22,
+ "email": "u1902078@student.cuet.ac.bd"
+}
+
+# Validate the data
+try:
+ validate(instance=data, schema=schema)
+ print(" JSON is valid! Proceed to insert into database.")
+except ValidationError as e:
+ print("❌ JSON validation failed:", e.message)
diff --git a/advanced-level/problem-4/problem-4.txt b/advanced-level/problem-4/problem-4.txt
new file mode 100644
index 0000000..3af1403
--- /dev/null
+++ b/advanced-level/problem-4/problem-4.txt
@@ -0,0 +1,3 @@
+Create a Mini REST API with Flask
+Build a mini Flask app with /tasks endpoint to GET, POST, and DELETE tasks from a list.
+ Hint: Use Flask's route decorators.
diff --git a/advanced-level/problem-4/solution-4.py b/advanced-level/problem-4/solution-4.py
new file mode 100644
index 0000000..0aabf5f
--- /dev/null
+++ b/advanced-level/problem-4/solution-4.py
@@ -0,0 +1,31 @@
+from flask import Flask, request, jsonify
+
+app = Flask(__name__)
+
+# In-memory list of tasks
+tasks = [
+ {"id": 1, "title": "Learn Python"},
+ {"id": 2, "title": "Build a REST API"}
+]
+
+# GET: Retrieve all tasks
+@app.route('/tasks', methods=['GET'])
+def get_tasks():
+ return jsonify(tasks)
+
+# POST: Add a new task
+@app.route('/tasks', methods=['POST'])
+def add_task():
+ new_task = request.get_json()
+ tasks.append(new_task)
+ return jsonify({"message": "Task added successfully!"}), 201
+
+# DELETE: Remove a task by ID
+@app.route('/tasks/', methods=['DELETE'])
+def delete_task(task_id):
+ global tasks
+ tasks = [t for t in tasks if t['id'] != task_id]
+ return jsonify({"message": f"Task {task_id} deleted!"})
+
+if __name__ == '__main__':
+ app.run(debug=True)
diff --git a/advanced-level/problem-5/problem-5.txt b/advanced-level/problem-5/problem-5.txt
new file mode 100644
index 0000000..ac3f358
--- /dev/null
+++ b/advanced-level/problem-5/problem-5.txt
@@ -0,0 +1,3 @@
+Problem-5: Calculate Pearson Correlation
+Given two lists, calculate the correlation coefficient (e.g., feature correlation in ML).
+ Hint: Use formula or scipy.stats.pearsonr().
diff --git a/advanced-level/problem-5/solution-5.py b/advanced-level/problem-5/solution-5.py
new file mode 100644
index 0000000..e611c27
--- /dev/null
+++ b/advanced-level/problem-5/solution-5.py
@@ -0,0 +1,7 @@
+from scipy.stats import pearsonr
+
+X = [10, 20, 30, 40, 50]
+Y = [10, 27, 35, 45, 55]
+
+corr,p_value= pearsonr(X, Y)
+print("Pearson correlation coefficient:", corr,p_value)
diff --git a/advanced-level/problem-6/mydata.xlsx b/advanced-level/problem-6/mydata.xlsx
new file mode 100644
index 0000000..2485679
Binary files /dev/null and b/advanced-level/problem-6/mydata.xlsx differ
diff --git a/advanced-level/problem-6/problem-6.txt b/advanced-level/problem-6/problem-6.txt
new file mode 100644
index 0000000..fb4114b
--- /dev/null
+++ b/advanced-level/problem-6/problem-6.txt
@@ -0,0 +1,3 @@
+Problem-6: Read CSV and Return Top Records
+Read a CSV of users and return top 5 users by score.
+Hint: Use csv.DictReader or pandas.
diff --git a/advanced-level/problem-6/solution-6.py b/advanced-level/problem-6/solution-6.py
new file mode 100644
index 0000000..0381522
--- /dev/null
+++ b/advanced-level/problem-6/solution-6.py
@@ -0,0 +1,15 @@
+from operator import index
+
+import pandas as pd
+
+# Step 1: Read the CSV file
+data = pd.read_excel(r'/home/wsl-ubuntu/Python_task/python-practice-problems/advanced-level/problem-6/mydata.xlsx')
+
+# Step 2: Sort by 'score' in descending order (highest first)
+sorted_data = data.sort_values(by='marks', ascending=False)
+
+# Step 3: Get top 5 records
+top_5 = sorted_data.head(5)
+
+# Step 4: Display result
+print(top_5)
diff --git a/advanced-level/problem-7/file.txt b/advanced-level/problem-7/file.txt
new file mode 100644
index 0000000..e69de29
diff --git a/advanced-level/problem-7/file1.csv b/advanced-level/problem-7/file1.csv
new file mode 100644
index 0000000..e69de29
diff --git a/advanced-level/problem-7/h.txt b/advanced-level/problem-7/h.txt
new file mode 100644
index 0000000..e69de29
diff --git a/advanced-level/problem-7/problem-7.txt b/advanced-level/problem-7/problem-7.txt
new file mode 100644
index 0000000..a6dbba4
--- /dev/null
+++ b/advanced-level/problem-7/problem-7.txt
@@ -0,0 +1,3 @@
+Problem-7: Simulate File Watcher in a Directory
+Monitor a folder and detect when new .txt files are added.
+ Hint: Use os.listdir() in a loop or watchdog.
diff --git a/advanced-level/problem-7/sa.txt b/advanced-level/problem-7/sa.txt
new file mode 100644
index 0000000..e69de29
diff --git a/advanced-level/problem-7/solution-7.py b/advanced-level/problem-7/solution-7.py
new file mode 100644
index 0000000..e587514
--- /dev/null
+++ b/advanced-level/problem-7/solution-7.py
@@ -0,0 +1,23 @@
+import os
+import time
+
+def watch_directory(path):
+ print(f"Watching directory: {path}")
+ existing_files = set(os.listdir(path))
+
+ while True:
+ time.sleep(8) # check every 8 seconds
+ current_files = set(os.listdir(path))
+
+ # detect new .txt files
+ new_files = [f for f in current_files - existing_files if f.endswith('.txt')]
+
+ if new_files:
+ for file in new_files:
+ print(f"New text file detected: {file}")
+
+ existing_files = current_files
+
+# Example usage
+directory_path = "/home/wsl-ubuntu/Python_task/python-practice-problems/advanced-level/problem-7" # change path as needed
+watch_directory(directory_path)
diff --git a/advanced-level/problem-8/problem-8.txt b/advanced-level/problem-8/problem-8.txt
new file mode 100644
index 0000000..bff6579
--- /dev/null
+++ b/advanced-level/problem-8/problem-8.txt
@@ -0,0 +1,2 @@
+Multiply two matrices, often needed in neural net computations.
+ Hint: Use nested loops or numpy.dot().
diff --git a/advanced-level/problem-8/solution-8.py b/advanced-level/problem-8/solution-8.py
new file mode 100644
index 0000000..401afcc
--- /dev/null
+++ b/advanced-level/problem-8/solution-8.py
@@ -0,0 +1,10 @@
+import numpy as np
+
+A = np.array([[1, 2, 3],
+ [4, 5, 6]])
+
+B = np.array([[7, 8],
+ [9, 10],
+ [11, 12]])
+result=np.dot(A,B)
+print(result)
diff --git a/advanced-level/problem-9/IMG_20221102_170856.jpg b/advanced-level/problem-9/IMG_20221102_170856.jpg
new file mode 100644
index 0000000..4b516e6
Binary files /dev/null and b/advanced-level/problem-9/IMG_20221102_170856.jpg differ
diff --git a/advanced-level/problem-9/grayscale_image.jpg b/advanced-level/problem-9/grayscale_image.jpg
new file mode 100644
index 0000000..3c25948
Binary files /dev/null and b/advanced-level/problem-9/grayscale_image.jpg differ
diff --git a/advanced-level/problem-9/problem-9.txt b/advanced-level/problem-9/problem-9.txt
new file mode 100644
index 0000000..f9564c9
--- /dev/null
+++ b/advanced-level/problem-9/problem-9.txt
@@ -0,0 +1,2 @@
+Write a function to convert a color image to grayscale and save it.
+ Hint: Use Pillow (PIL.Image.open().convert("L")).
diff --git a/advanced-level/problem-9/solution-9.py b/advanced-level/problem-9/solution-9.py
new file mode 100644
index 0000000..b74f4bf
--- /dev/null
+++ b/advanced-level/problem-9/solution-9.py
@@ -0,0 +1,22 @@
+from PIL import Image
+
+
+def convert_to_grayscale(input_path, output_path):
+ """
+ Converts a color image to grayscale and saves it.
+ Args:
+ input_path (str): Path to the input color image.
+ output_path (str): Path to save the grayscale image.
+ """
+ # Open the color image
+ image = Image.open(input_path)
+
+ # Convert to grayscale ('L' mode = 8-bit pixels, black and white)
+ gray_image = image.convert("L")
+
+ # Save the grayscale image
+ gray_image.save(output_path)
+ print(f"Grayscale image saved as {output_path}")
+
+# Example usage
+convert_to_grayscale(r"/home/wsl-ubuntu/Python_task/python-practice-problems/advanced-level/problem-9/IMG_20221102_170856.jpg", r"/home/wsl-ubuntu/Python_task/python-practice-problems/advanced-level/problem-9/grayscale_image.jpg")
diff --git a/beginner-level/problem-1/problem-1.txt b/beginner-level/problem-1/problem-1.txt
new file mode 100644
index 0000000..61df776
--- /dev/null
+++ b/beginner-level/problem-1/problem-1.txt
@@ -0,0 +1,10 @@
+Reverse a String Without Slicing
+
+You are building a simple text utility tool for your web app. One of the requirements is to reverse a string input by a user.
+
+ Input: "bongodev"
+
+ Output: "vedognob"
+
+ Hint: Use a loop to read the string from end to start.
+
diff --git a/beginner-level/problem-1/solution-1.py b/beginner-level/problem-1/solution-1.py
new file mode 100644
index 0000000..d95630b
--- /dev/null
+++ b/beginner-level/problem-1/solution-1.py
@@ -0,0 +1,8 @@
+Input="bongodev"
+
+def reverese_string(s):
+ x = ""
+ for i in range(len(s)-1,-1,-1):
+ x+=s[i]
+ print(x)
+reverese_string(Input)
diff --git a/beginner-level/problem-10/problem-10.txt b/beginner-level/problem-10/problem-10.txt
new file mode 100644
index 0000000..a3bf474
--- /dev/null
+++ b/beginner-level/problem-10/problem-10.txt
@@ -0,0 +1,5 @@
+ Check if a Number is Prime
+Write a function to check if a number is prime, useful in some encryption schemes.
+ Input: 29
+ Output: True
+ Hint: Check divisibility from 2 to sqrt(n).
diff --git a/beginner-level/problem-10/solution-10.py b/beginner-level/problem-10/solution-10.py
new file mode 100644
index 0000000..5e2238a
--- /dev/null
+++ b/beginner-level/problem-10/solution-10.py
@@ -0,0 +1,13 @@
+def isprime(m):
+ import math
+ for i in range(2,math.floor(m**.5)+1):
+ print(i)
+ if m%i!=0:
+ pass
+ else:
+ return "Not a prime number"
+ return "prime number"
+print(isprime(29))
+
+print(isprime(100))
+
diff --git a/beginner-level/problem-2/problem-2.txt b/beginner-level/problem-2/problem-2.txt
new file mode 100644
index 0000000..a4a1fa1
--- /dev/null
+++ b/beginner-level/problem-2/problem-2.txt
@@ -0,0 +1,5 @@
+Count Vowels in a Sentence
+As part of a data-cleaning pipeline, count how many vowels are in a string to later analyze readability.
+ Input: "Data Science is awesome"
+ Output: 9
+ Hint: Convert string to lowercase and check each character.
diff --git a/beginner-level/problem-2/solution-2.py b/beginner-level/problem-2/solution-2.py
new file mode 100644
index 0000000..d36bf76
--- /dev/null
+++ b/beginner-level/problem-2/solution-2.py
@@ -0,0 +1,10 @@
+Input="Data Science is Awesome"
+
+def vowel_numbers(s):
+ vowels = ["a", "e", "i", "o", "u"]
+ count=0
+ for i in s.lower():
+ if i in vowels:
+ count+=1
+ print(count)
+vowel_numbers(Input)
diff --git a/beginner-level/problem-3/problem-3.txt b/beginner-level/problem-3/problem-3.txt
new file mode 100644
index 0000000..c8aab20
--- /dev/null
+++ b/beginner-level/problem-3/problem-3.txt
@@ -0,0 +1,5 @@
+ Find Duplicates in a List
+You’re given a user-uploaded list of tags. Identify duplicates for suggestion cleanup.
+ Input: ["ai", "ml", "python", "ml", "dl", "ai"]
+ Output: ["ml", "ai"]
+ Hint: Use a dictionary or set to track seen elements
\ No newline at end of file
diff --git a/beginner-level/problem-3/solution-3.py b/beginner-level/problem-3/solution-3.py
new file mode 100644
index 0000000..8271704
--- /dev/null
+++ b/beginner-level/problem-3/solution-3.py
@@ -0,0 +1,12 @@
+Input= ["ai", "ml", "python", "ml", "dl", "ai"]
+def duplicates(s):
+ x=[]
+ duplicate=[]
+ for i in s:
+ if i in x:
+ duplicate.append(i)
+ else:
+ x.append(i)
+ print(duplicate)
+duplicates(Input)
+
diff --git a/beginner-level/problem-4/problem-4.txt b/beginner-level/problem-4/problem-4.txt
new file mode 100644
index 0000000..df2959d
--- /dev/null
+++ b/beginner-level/problem-4/problem-4.txt
@@ -0,0 +1,7 @@
+Write a function that checks if a word or phrase is the same when reversed, ignoring spaces and punctuation.
+
+ Input: "Madam"
+
+ Output: True
+
+ Hint: Normalize the string and compare it to its reverse.
diff --git a/beginner-level/problem-4/solution-4.py b/beginner-level/problem-4/solution-4.py
new file mode 100644
index 0000000..90e87bd
--- /dev/null
+++ b/beginner-level/problem-4/solution-4.py
@@ -0,0 +1,20 @@
+input_text = "Madam"
+input_text2 = "A sman, a plan, a canal, Panama"
+def palindrome(x):
+ p=x.replace(" ", "").replace(",", "").lower()
+ left=0
+ right= len(p) - 1
+ same_char=True
+ while left0):
+
+ digit=x%10
+ x=x//10
+ sum+=digit
+ print(sum)
+sum_of_digits_of_a_number(Input)
+
+def sum_of_digits_of_a_number_using_string(number):
+ string=str(number)
+ s=list(string)
+ n=[int(i) for i in s]
+ sums=sum(n)
+ print(sums)
+sum_of_digits_of_a_number_using_string(Input)
+
diff --git a/intermediate-level/problem-1/Solution-1.py b/intermediate-level/problem-1/Solution-1.py
new file mode 100644
index 0000000..bdf8cbe
--- /dev/null
+++ b/intermediate-level/problem-1/Solution-1.py
@@ -0,0 +1,2 @@
+Input="Machine learning is fascinating"
+print(max(Input.split(),key=len))
diff --git a/intermediate-level/problem-1/problem-1.txt b/intermediate-level/problem-1/problem-1.txt
new file mode 100644
index 0000000..095e43c
--- /dev/null
+++ b/intermediate-level/problem-1/problem-1.txt
@@ -0,0 +1,5 @@
+Longest Word in a Sentence
+Build a function that extracts the longest word from user-generated content.
+ Input: "Machine learning is fascinating"
+ Output: "fascinating"
+ Hint: Split string and use max() with key=len.
diff --git a/intermediate-level/problem-10/Solution-10.py b/intermediate-level/problem-10/Solution-10.py
new file mode 100644
index 0000000..18636fd
--- /dev/null
+++ b/intermediate-level/problem-10/Solution-10.py
@@ -0,0 +1,16 @@
+import string
+from collections import Counter
+from itertools import count
+
+blog_content = """
+Python is an amazing programming language. Python is used in web development, data science, AI, and more.
+"""
+stopwords = [
+ "a", "an", "the", "is", "in", "and", "to", "of", "for", "on", "with", "as", "by", "it", "from", "at", "be", "this", "that", "more", "used"
+]
+translator=str.maketrans('','',string.punctuation)
+words=blog_content.translate(translator)
+filtered_sentence=[word for word in words.lower().split() if word not in stopwords]
+words_count=Counter(filtered_sentence)
+most_common_word,freq=words_count.most_common(1)[0]
+print(f"most common word is ={most_common_word} and its frequency is ={freq}")
diff --git a/intermediate-level/problem-10/problem-10.txt b/intermediate-level/problem-10/problem-10.txt
new file mode 100644
index 0000000..c441ecb
--- /dev/null
+++ b/intermediate-level/problem-10/problem-10.txt
@@ -0,0 +1,2 @@
+Analyze blog content and find the most frequent word, excluding common stopwords.
+ Hint: Clean punctuations, lowercase all, use Counter.
diff --git a/intermediate-level/problem-2/Solution-2.py b/intermediate-level/problem-2/Solution-2.py
new file mode 100644
index 0000000..c959c0f
--- /dev/null
+++ b/intermediate-level/problem-2/Solution-2.py
@@ -0,0 +1,10 @@
+x=["bat", "tab", "cat", "act"]
+group={}
+
+for i in x:
+ key="".join(sorted(i))
+ if key not in group:
+ group[key]=[i]
+ else:
+ group[key].append(i)
+print(group)
diff --git a/intermediate-level/problem-2/problem-2.txt b/intermediate-level/problem-2/problem-2.txt
new file mode 100644
index 0000000..14f12cb
--- /dev/null
+++ b/intermediate-level/problem-2/problem-2.txt
@@ -0,0 +1,5 @@
+Group Anagrams Together
+Group similar words together in a UI (e.g., tags: ["bat", "tab", "cat", "act"]).
+ Output: [["bat", "tab"], ["cat", "act"]]
+ Hint: Use a dictionary where sorted word is key.
+
diff --git a/intermediate-level/problem-3/Solution-3.py b/intermediate-level/problem-3/Solution-3.py
new file mode 100644
index 0000000..1d60320
--- /dev/null
+++ b/intermediate-level/problem-3/Solution-3.py
@@ -0,0 +1,29 @@
+from collections import OrderedDict
+class LRUCache(object):
+ from collections import OrderedDict
+ def __init__(self, capacity):
+ self.cache = OrderedDict()
+ self.capacity = capacity
+ def __init__(self, capacity):
+ self.cache=OrderedDict()
+ self.capacity=capacity
+ def get(self,key):
+ if key not in self.cache:
+ return -1
+ self.cache.move_to_end(key,last=True)
+ return self.cache[key]
+ def put(self,key:str,value:int):
+ if key in self.cache:
+ self.cache.move_to_end(key)
+ self.cache[key] = value
+ if len(self.cache)>self.capacity:
+ self.cache.popitem(last=False)
+ return self.cache[key]
+x=LRUCache(2)
+x.put("a",1)
+x.put("b",2)
+x.put("c",3)
+print(x.cache)
+print(x.get("b"))
+print(x.cache)
+
diff --git a/intermediate-level/problem-3/problem-3.txt b/intermediate-level/problem-3/problem-3.txt
new file mode 100644
index 0000000..5ff2430
--- /dev/null
+++ b/intermediate-level/problem-3/problem-3.txt
@@ -0,0 +1,3 @@
+Implement an LRU Cache (Least Recently Used)
+Simulate caching in a backend system. You need to implement a cache with get() and put() methods.
+ Hint: Use OrderedDict or create a custom class with a doubly linked list
\ No newline at end of file
diff --git a/intermediate-level/problem-4/Solution-4.py b/intermediate-level/problem-4/Solution-4.py
new file mode 100644
index 0000000..534d7c3
--- /dev/null
+++ b/intermediate-level/problem-4/Solution-4.py
@@ -0,0 +1,5 @@
+import re
+def valid_email(email:str)->bool:
+ pattern= r"^[\w\.-\]+@[\w]+[\.]+(\w+)$"
+ return re.match(pattern,email) is not None
+print(valid_email("muntasir6182@gmail.com"))
\ No newline at end of file
diff --git a/intermediate-level/problem-4/problem-4.txt b/intermediate-level/problem-4/problem-4.txt
new file mode 100644
index 0000000..d67b88a
--- /dev/null
+++ b/intermediate-level/problem-4/problem-4.txt
@@ -0,0 +1,5 @@
+Validate Email Format
+Write a function that validates emails during user registration.
+ Input: "test@domain.com"
+ Output: True
+ Hint: Use regular expressions.
diff --git a/intermediate-level/problem-5/Solution-5.py b/intermediate-level/problem-5/Solution-5.py
new file mode 100644
index 0000000..9fca594
--- /dev/null
+++ b/intermediate-level/problem-5/Solution-5.py
@@ -0,0 +1,8 @@
+from functools import lru_cache
+
+@lru_cache(maxsize=None) # cache results so they don’t get recomputed
+def fibonacci(n):
+ if n < 2:
+ return n
+ return fibonacci(n-1) + fibonacci(n-2)
+print(fibonacci(6))
\ No newline at end of file
diff --git a/intermediate-level/problem-5/problem-5.txt b/intermediate-level/problem-5/problem-5.txt
new file mode 100644
index 0000000..9555d19
--- /dev/null
+++ b/intermediate-level/problem-5/problem-5.txt
@@ -0,0 +1,9 @@
+Fibonacci Using Memoization
+
+Optimize a recursive Fibonacci function using caching, useful in DP-based ML solutions.
+
+ Input: 50
+
+ Output: 12586269025
+
+ Hint: Use @lru_cache from functools.
diff --git a/intermediate-level/problem-6/Solution-6.py b/intermediate-level/problem-6/Solution-6.py
new file mode 100644
index 0000000..d7fa2db
--- /dev/null
+++ b/intermediate-level/problem-6/Solution-6.py
@@ -0,0 +1,17 @@
+def flatten_json(nested_dict, parent_key='', sep='.'):
+
+ flat_dict = {}
+ for key, value in nested_dict.items():
+ new_key = f"{parent_key}{sep}{key}" if parent_key else key
+ if isinstance(value, dict):
+ # Recursively flatten the nested dictionary
+ flat_dict.update(flatten_json(value, new_key, sep=sep))
+ else:
+ flat_dict[new_key] = value
+
+ return flat_dict
+
+
+nested = {"a": {"b": 1}}
+flattened = flatten_json(nested)
+print(flattened)
diff --git a/intermediate-level/problem-6/problem-6.txt b/intermediate-level/problem-6/problem-6.txt
new file mode 100644
index 0000000..f180417
--- /dev/null
+++ b/intermediate-level/problem-6/problem-6.txt
@@ -0,0 +1,5 @@
+Flatten a Nested JSON
+Flatten a nested dictionary for storage in tabular format or NoSQL DB.
+ Input: {"a": {"b": 1}}
+ Output: {"a.b": 1}
+ Hint: Use recursion.
diff --git a/intermediate-level/problem-7/Solution-7.py b/intermediate-level/problem-7/Solution-7.py
new file mode 100644
index 0000000..41df5f7
--- /dev/null
+++ b/intermediate-level/problem-7/Solution-7.py
@@ -0,0 +1,21 @@
+from collections import Counter
+
+# Initialize a counter for IPs
+ip_counter = Counter()
+
+# Open the log file
+with open("access.log", "r") as file:
+ for line in file:
+ line=line.strip()
+ if not line:
+ continue
+ # Split the line by space and take the first part as IP
+ ip = line.split()[0]
+ ip_counter[ip] += 1
+
+# Find the top 3 IPs with most requests
+top_ips = ip_counter.most_common(3)
+
+print("Top 3 IPs with most requests:")
+for ip, count in top_ips:
+ print(f"{ip}: {count} requests")
diff --git a/intermediate-level/problem-7/access.log b/intermediate-level/problem-7/access.log
new file mode 100644
index 0000000..f18286c
--- /dev/null
+++ b/intermediate-level/problem-7/access.log
@@ -0,0 +1,14 @@
+127.0.0.1 - - [01/Oct/2025:12:00:01 +0000] "GET /index.html HTTP/1.1" 200 1024
+192.168.0.5 - - [01/Oct/2025:12:00:02 +0000] "POST /login HTTP/1.1" 200 512
+127.0.0.1 - - [01/Oct/2025:12:00:03 +0000] "GET /about.html HTTP/1.1" 200 2048
+10.0.0.2 - - [01/Oct/2025:12:00:04 +0000] "GET /contact.html HTTP/1.1" 200 678
+203.0.113.4 - - [01/Oct/2025:12:00:05 +0000] "GET /products HTTP/1.1" 200 1543
+192.168.0.5 - - [01/Oct/2025:12:00:06 +0000] "GET /dashboard HTTP/1.1" 200 2048
+127.0.0.1 - - [01/Oct/2025:12:00:07 +0000] "POST /api/submit HTTP/1.1" 201 256
+198.51.100.23 - - [01/Oct/2025:12:00:08 +0000] "GET /images/logo.png HTTP/1.1" 304 0
+172.16.0.7 - - [01/Oct/2025:12:00:09 +0000] "GET /docs/manual.pdf HTTP/1.1" 200 4096
+8.8.8.8 - - [01/Oct/2025:12:00:10 +0000] "GET /search?q=test HTTP/1.1" 200 1024
+54.152.12.9 - - [01/Oct/2025:12:00:11 +0000] "POST /login HTTP/1.1" 401 512
+203.0.113.4 - - [01/Oct/2025:12:00:12 +0000] "GET /products/42 HTTP/1.1" 200 867
+192.168.0.5 - - [01/Oct/2025:12:00:13 +0000] "GET /api/status HTTP/1.1" 200 128
+
diff --git a/intermediate-level/problem-7/problem-7.txt b/intermediate-level/problem-7/problem-7.txt
new file mode 100644
index 0000000..af59afa
--- /dev/null
+++ b/intermediate-level/problem-7/problem-7.txt
@@ -0,0 +1,3 @@
+Analyze Access Logs and Count IPs
+Parse Apache log and find the top 3 IPs with the most requests.
+Hint: Read file line-by-line and count IPs using collections.Counter.
diff --git a/intermediate-level/problem-8/Solution-8.py b/intermediate-level/problem-8/Solution-8.py
new file mode 100644
index 0000000..1767b33
--- /dev/null
+++ b/intermediate-level/problem-8/Solution-8.py
@@ -0,0 +1,53 @@
+# simple_cli.py
+
+def main():
+ # Take user input, like: add 5 7
+ command = input("Enter command: ").split()
+
+ if not command:
+ print("No command given.")
+ return
+
+ action = command[0]
+
+ if action == "add":
+ if len(command) != 3:
+ print("Usage: add ")
+ else:
+ num1 = float(command[1])
+ num2 = float(command[2])
+ print(num1 + num2)
+
+ elif action == "sub":
+ if len(command) != 3:
+ print("Usage: sub ")
+ else:
+ num1 = float(command[1])
+ num2 = float(command[2])
+ print(num1 - num2)
+
+ elif action == "mul":
+ if len(command) != 3:
+ print("Usage: mul ")
+ else:
+ num1 = float(command[1])
+ num2 = float(command[2])
+ print(num1 * num2)
+
+ elif action == "div":
+ if len(command) != 3:
+ print("Usage: div ")
+ else:
+ num1 = float(command[1])
+ num2 = float(command[2])
+ if num2 == 0:
+ print("Error: Division by zero!")
+ else:
+ print(num1 / num2)
+
+ else:
+ print(f"Unknown command: {action}")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/intermediate-level/problem-8/problem-8.txt b/intermediate-level/problem-8/problem-8.txt
new file mode 100644
index 0000000..24d3f96
--- /dev/null
+++ b/intermediate-level/problem-8/problem-8.txt
@@ -0,0 +1,2 @@
+Build a CLI tool that takes command add 5 7 and returns 12.
+ Hint: Parse input().split() and use if/elif for commands.
diff --git a/intermediate-level/problem-9/Solution-9.py b/intermediate-level/problem-9/Solution-9.py
new file mode 100644
index 0000000..65ae6d2
--- /dev/null
+++ b/intermediate-level/problem-9/Solution-9.py
@@ -0,0 +1,39 @@
+# password_validator.py
+
+import re
+
+def validate_password(password):
+ errors = []
+
+ # Minimum length check
+ if len(password) < 8:
+ errors.append("Password must be at least 8 characters long.")
+
+ # Uppercase check
+ if not any(c.isupper() for c in password):
+ errors.append("Password must contain at least one uppercase letter.")
+
+ # Lowercase check
+ if not any(c.islower() for c in password):
+ errors.append("Password must contain at least one lowercase letter.")
+
+ # Number check
+ if not any(c.isdigit() for c in password):
+ errors.append("Password must contain at least one number.")
+
+ # Special character check (regex: anything not letter or digit)
+ if not re.search(r"[^A-Za-z0-9]", password):
+ errors.append("Password must contain at least one special character.")
+
+ # Final result
+ if errors:
+ print("❌ Invalid password:")
+ for e in errors:
+ print(" -", e)
+ else:
+ print("Password is valid!")
+
+
+if __name__ == "__main__":
+ user_input = input("Enter your password: ")
+ validate_password(user_input)
diff --git a/intermediate-level/problem-9/problem-9.txt b/intermediate-level/problem-9/problem-9.txt
new file mode 100644
index 0000000..09ece76
--- /dev/null
+++ b/intermediate-level/problem-9/problem-9.txt
@@ -0,0 +1,3 @@
+Build a validator that checks for minimum length, uppercase, lowercase, number, and special character.
+
+ Hint: Use regex or manual checks with any().
diff --git a/starter/problem-1/Solution1.py b/starter/problem-1/Solution1.py
new file mode 100644
index 0000000..43ccf74
--- /dev/null
+++ b/starter/problem-1/Solution1.py
@@ -0,0 +1,2 @@
+name="Hello there"
+print(len(name))
diff --git a/starter/problem-1/problem1.txt b/starter/problem-1/problem1.txt
new file mode 100644
index 0000000..7693f1c
--- /dev/null
+++ b/starter/problem-1/problem1.txt
@@ -0,0 +1,2 @@
+Problem-1: Write a program to find the length of the variable name
+Variable, name="Hello there"
\ No newline at end of file
diff --git a/starter/problem-10/problem10.txt b/starter/problem-10/problem10.txt
new file mode 100644
index 0000000..406c806
--- /dev/null
+++ b/starter/problem-10/problem10.txt
@@ -0,0 +1,2 @@
+Problem-10: The list below is the collection of the ages of people from a village. Clean up the data and store only numbers in another list.
+data_list = [13, 24, 'Karim', {'name': 'guru'}, 45, 17]
\ No newline at end of file
diff --git a/starter/problem-10/solution10.py b/starter/problem-10/solution10.py
new file mode 100644
index 0000000..0c1d79b
--- /dev/null
+++ b/starter/problem-10/solution10.py
@@ -0,0 +1,6 @@
+data_list = [13, 24, 'Karim', {'name': 'guru'}, 45, 17]
+age=[]
+for i in range(len(data_list)):
+ if type(data_list[i]) is int:
+ age.append(data_list[i])
+print(age)
diff --git a/starter/problem-11/problem11.txt b/starter/problem-11/problem11.txt
new file mode 100644
index 0000000..f6d3845
--- /dev/null
+++ b/starter/problem-11/problem11.txt
@@ -0,0 +1,2 @@
+Problem-11: Find the most frequent character in the paragraph
+rhyme = 'Twinkle, twinkle, little star. How I wonder what you are!
\ No newline at end of file
diff --git a/starter/problem-11/solution11.py b/starter/problem-11/solution11.py
new file mode 100644
index 0000000..e2d65c5
--- /dev/null
+++ b/starter/problem-11/solution11.py
@@ -0,0 +1,23 @@
+rhyme = 'Twinkle, twinkle, little stars. How I wonder what you are!'
+
+repeat=[]
+previous_count=0
+max_count=0
+max_index=0
+rhyme=rhyme.replace(" ","").lower()
+
+for first in range(len(rhyme)):
+ if rhyme[first] in repeat: #this is used to stop repeation in loop
+ continue
+
+ count = 0
+ for second in range(first+1,len(rhyme)):
+ if rhyme[first]==rhyme[second]:
+ count+=1
+ if count>max_count:
+ max_count=count
+ max_index=first
+ # else:
+ # print(f"{rhyme[first]} is not equal to {rhyme[second]}")
+ repeat.append(rhyme[first])
+print("most frequent character is",rhyme[max_index],max_count+1)
diff --git a/starter/problem-12/problem12.txt b/starter/problem-12/problem12.txt
new file mode 100644
index 0000000..290f350
--- /dev/null
+++ b/starter/problem-12/problem12.txt
@@ -0,0 +1,4 @@
+12: Find the common items between the lists and make SUM of the new list items which are common between the lists.
+list1 = [3, 5, 7, 4, 8, 8]
+
+list2 = [4, 9, 8, 7, 1, 1, 13]
\ No newline at end of file
diff --git a/starter/problem-12/solution12.py b/starter/problem-12/solution12.py
new file mode 100644
index 0000000..49f413b
--- /dev/null
+++ b/starter/problem-12/solution12.py
@@ -0,0 +1,14 @@
+list1 = [3, 5, 7, 4, 8, 8]
+
+list2 = [4, 9, 8, 7, 1, 1, 13]
+new_list=[]
+repeat=[]
+
+for i in list1:
+ if i in repeat:
+ continue
+ if i in list2:
+ new_list.append(i)
+ repeat.append(i)
+print(new_list)
+print(sum(new_list))
diff --git a/starter/problem-13/problem13.txt b/starter/problem-13/problem13.txt
new file mode 100644
index 0000000..e50eae0
--- /dev/null
+++ b/starter/problem-13/problem13.txt
@@ -0,0 +1,3 @@
+ Compare the two dictionaries and find the common items based on KEYs of the dictionaries
+ dict1 = {'age': 13, 'id': 12, 'address': 'Banani', 'course': 'Python'}
+dict2 = {'address': 'Rupnagar', 'id': 25, 'course': 'MERN'}
\ No newline at end of file
diff --git a/starter/problem-13/solution13.py b/starter/problem-13/solution13.py
new file mode 100644
index 0000000..3e5ae64
--- /dev/null
+++ b/starter/problem-13/solution13.py
@@ -0,0 +1,5 @@
+dict1 = {'age': 13, 'id': 12, 'address': 'Banani', 'course': 'Python'}
+dict2 = {'address': 'Rupnagar', 'id': 25, 'course': 'MERN'}
+common_keys=dict1.keys() & dict2.keys()
+common_items={key:(dict1[key],dict1[key]) for key in common_keys}
+print(common_items)
\ No newline at end of file
diff --git a/starter/problem-14/problem14.txt b/starter/problem-14/problem14.txt
new file mode 100644
index 0000000..084b7c0
--- /dev/null
+++ b/starter/problem-14/problem14.txt
@@ -0,0 +1,2 @@
+Sort the list in DESCENDING order and find the subtraction of maximum and minimum numbers.
+list_1 = [4, 9, 8, 7, 5, 2, 13]
\ No newline at end of file
diff --git a/starter/problem-14/solution14.py b/starter/problem-14/solution14.py
new file mode 100644
index 0000000..7ffc641
--- /dev/null
+++ b/starter/problem-14/solution14.py
@@ -0,0 +1,5 @@
+list_1 = [4, 9, 8, 7, 5, 2, 13]
+list_1.sort(reverse=True)
+
+print(list_1)
+print(max(list_1)-min(list_1))
\ No newline at end of file
diff --git a/starter/problem-15/problem15.txt b/starter/problem-15/problem15.txt
new file mode 100644
index 0000000..cd7f746
--- /dev/null
+++ b/starter/problem-15/problem15.txt
@@ -0,0 +1,3 @@
+Write conditional statements to identify the student’s average marks. If any subject’s mark is less than 40, you should print FAILED instead of making average marks
+lstudent_1 = [40, 35, 70, 90, 56]
+student_2 = [57, 35, 80, 98, 46]
\ No newline at end of file
diff --git a/starter/problem-15/solution15.py b/starter/problem-15/solution15.py
new file mode 100644
index 0000000..f6074c2
--- /dev/null
+++ b/starter/problem-15/solution15.py
@@ -0,0 +1,15 @@
+
+lstudent_1 = [40, 35, 70, 90, 56]
+student_2 = [57, 55, 80, 98, 46]
+student_list={"lstduent_1":lstudent_1 ,"student_2":student_2 }
+for i in student_list:
+ fail = False
+ for j in student_list[i]:
+ if j<40:
+ fail=True
+ if not fail:
+ x=sum(student_list[i])/(len(student_list[i]))
+ print(f"avg is {x:.2f}")
+ elif fail:
+ print(f"{i} got failed")
+
diff --git a/starter/problem-2/Solution2.py b/starter/problem-2/Solution2.py
new file mode 100644
index 0000000..4e3d831
--- /dev/null
+++ b/starter/problem-2/Solution2.py
@@ -0,0 +1,2 @@
+name="Hello there"
+print(type(name))
\ No newline at end of file
diff --git a/starter/problem-2/problem2.txt b/starter/problem-2/problem2.txt
new file mode 100644
index 0000000..0dc4735
--- /dev/null
+++ b/starter/problem-2/problem2.txt
@@ -0,0 +1,2 @@
+ Write a program to find the type of the variable name
+name="Hello there"
\ No newline at end of file
diff --git a/starter/problem-3/Solution3.py b/starter/problem-3/Solution3.py
new file mode 100644
index 0000000..4374918
--- /dev/null
+++ b/starter/problem-3/Solution3.py
@@ -0,0 +1,5 @@
+def eld(a,b):
+ if a>b:
+ return f"{a if a>b else b} is elder"
+
+print(eld(3,2))
diff --git a/starter/problem-3/problem3.txt b/starter/problem-3/problem3.txt
new file mode 100644
index 0000000..d6a0cb8
--- /dev/null
+++ b/starter/problem-3/problem3.txt
@@ -0,0 +1 @@
+Write a function that takes 2 numbers as arguments (age of two brothers) and find who is elder
diff --git a/starter/problem-4/Solution4.py b/starter/problem-4/Solution4.py
new file mode 100644
index 0000000..f7ea996
--- /dev/null
+++ b/starter/problem-4/Solution4.py
@@ -0,0 +1,2 @@
+numbers=[3, 5, 1, 9, 7, 2, 8 ]
+print(numbers.index(7))
\ No newline at end of file
diff --git a/starter/problem-4/problem-4.txt b/starter/problem-4/problem-4.txt
new file mode 100644
index 0000000..ceb3710
--- /dev/null
+++ b/starter/problem-4/problem-4.txt
@@ -0,0 +1,2 @@
+Write a program to find the index of 7
+numbers=[3, 5, 1, 9, 7, 2, 8 ]
\ No newline at end of file
diff --git a/starter/problem-5/Solution-5.py b/starter/problem-5/Solution-5.py
new file mode 100644
index 0000000..7d21b00
--- /dev/null
+++ b/starter/problem-5/Solution-5.py
@@ -0,0 +1,4 @@
+numbers = [3, 5, 1, 9, 7, 2, 8]
+ascending = sorted(numbers)
+print("Ascending order:", ascending)
+
diff --git a/starter/problem-5/problem-5.txt b/starter/problem-5/problem-5.txt
new file mode 100644
index 0000000..dccc780
--- /dev/null
+++ b/starter/problem-5/problem-5.txt
@@ -0,0 +1,2 @@
+Write a program to sort the numbers in Ascending order
+numbers=[3, 5, 1, 9, 7, 2, 8 ]
diff --git a/starter/problem-6/Solution-6.py b/starter/problem-6/Solution-6.py
new file mode 100644
index 0000000..c4825d2
--- /dev/null
+++ b/starter/problem-6/Solution-6.py
@@ -0,0 +1,5 @@
+def isLandscape(width,height):
+ return("Landscape" if width>height else "Portrait")
+width=54
+height=32
+print(isLandscape(4,32))
\ No newline at end of file
diff --git a/starter/problem-6/problem6.txt b/starter/problem-6/problem6.txt
new file mode 100644
index 0000000..1e087f9
--- /dev/null
+++ b/starter/problem-6/problem6.txt
@@ -0,0 +1 @@
+Write a function named isLandscape that takes 2 numbers (image width and height) as arguments and the function returns Landscape if the image width has a higher value than height. Returns Portrait otherwise
diff --git a/starter/problem-7/problem-7.py b/starter/problem-7/problem-7.py
new file mode 100644
index 0000000..1163e96
--- /dev/null
+++ b/starter/problem-7/problem-7.py
@@ -0,0 +1,10 @@
+def func(a):
+ if a%5==0 and a%3==0:
+ return "FizzBuzz"
+ elif a%5==0:
+ return "Buzz"
+ elif a%3==0:
+ return "Fizz"
+ else :
+ return "Not a Fizz-buzz number"
+print(func(23))
\ No newline at end of file
diff --git a/starter/problem-7/problem-7.txt b/starter/problem-7/problem-7.txt
new file mode 100644
index 0000000..a2fa661
--- /dev/null
+++ b/starter/problem-7/problem-7.txt
@@ -0,0 +1 @@
+Write a function that takes 1 number as argument. The function should return “Fizz” if the number is divisible by 3, the function should return “Buzz” if the number is divisible by 5, the function should return “FizzBuzz” if the number is divisible by both 5 and 3, otherwise return “Not a Fizz-buzz number
diff --git a/starter/problem-8/Solution8.py b/starter/problem-8/Solution8.py
new file mode 100644
index 0000000..c0c53a5
--- /dev/null
+++ b/starter/problem-8/Solution8.py
@@ -0,0 +1,13 @@
+def guess():
+ actual_number=6
+
+ while True:
+ a = int(input("Enter a number between 1 and 9: "))
+ if a>8 or a<4:
+ print("higher")
+ elif (a>=4 and a<=8) and a!=actual_number:
+ print("Almost there")
+ elif a==actual_number:
+ print("Your guess is correct")
+ break
+guess()
\ No newline at end of file
diff --git a/starter/problem-8/problem8.txt b/starter/problem-8/problem8.txt
new file mode 100644
index 0000000..4a89543
--- /dev/null
+++ b/starter/problem-8/problem8.txt
@@ -0,0 +1 @@
+Write a function that takes a number 1 to 9 from the user input (use input function inside a function). Store a number in a variable (let’s assume 6). If the input value is less than the variable, print (your guess is almost there), if the input value is greater than the variable, print - your guess is higher, if the input value and variable are equals, print - Your Guess Is Correct!
diff --git a/starter/problem-9/Solution-9.py b/starter/problem-9/Solution-9.py
new file mode 100644
index 0000000..32ba15c
--- /dev/null
+++ b/starter/problem-9/Solution-9.py
@@ -0,0 +1,9 @@
+my_list = [4, 8, 7, 6,4,3,2,1,9]
+count=0
+for i in range(len(my_list)):
+ if my_list[i]==6:
+ count+=1
+if count>=1:
+ print("6 is available")
+else:
+ print("6 is not available")
\ No newline at end of file
diff --git a/starter/problem-9/problem-9.txt b/starter/problem-9/problem-9.txt
new file mode 100644
index 0000000..82cc1b5
--- /dev/null
+++ b/starter/problem-9/problem-9.txt
@@ -0,0 +1,2 @@
+Find if 6 is available in the list
+my_list = [4, 8, 7, 4,3,6,2,1,9]
\ No newline at end of file