내일배움캠프/TIL

[TIL]파이썬 코드카타, 개인과제4번

dydatablog 2024. 12. 16. 19:57
728x90

제일 작은 수 제거하기

def solution(arr):
    min_num = min(arr)
    arr.remove(min_num)
    if len(arr) < 2:
        return [-1]
    return arr

 

자연수 뒤집어 배열로 만들기

def solution(n):
    result = [int(i) for i in reversed(str(n))]
    
    return result

 

 

두 수의 차

def solution(num1, num2):
    answer = num1 - num2
    return answer

 

 

 

 

 

문제4: 이메일 유효성 검사

  1. 출제의도
    • 문자형 자료형의 메소드를 사용할 수 있다.
    • 조건문,반복문, 함수형을 완벽하게 이해하여 기능을 구현할 수 있다.
  2. 배경

당신은 고객 데이터를 수집하고 정리하는 과정에 있습니다. 확인해보니 회원가입 시 이메일 유효성 검사가 기능으로 구현되어있지 않음을 확인했습니다. 이를 보완하기 위하여 이메일 유효성 검사 기능을 만들려고 합니다.

  1. 요구사항
  • 이메일은 ID와 골뱅이, 도메인 3가지 요소로 구성 되어있습니다.
    • 이메일은 하나의 @ 기호를 포함해야하며, @ 기준으로 ID도메인으로 나눠집니다.
    • ID는 어떠한 문자든 숫자든 허용됩니다. 최소한 1자리가 존재 해야합니다.
    • 도메인 역시 어떠한 문자나 숫자를 허용합니다. 단, 접미사는 .com , .co.kr 만 허용합니다.(문제풀이 편의성)
  • 이메일 주소 리스트 email_list 를 입력받아 각 이메일의 유효성을 검사하는 함수 check_email 함수를 완성합니다.
  • 유효한 이메일인 경우 “유효한 이메일입니다” 라고 출력합니다.
  • 유효하지 않은 이메일인 경우 “유효하지 않은 이메일입니다.” 라고 출력하며 그 이유를 함께 출력합니다.
    • ex) “ID가 누락”, “@ 가 누락”, “적절하지 않은 도메인”
email_list = [
    "example@example.com",  # 유효한 이메일
    "yangbujang@email.co.kr",  # 유효한 이메일
    "iamhungry.com",  # 틀린 이메일 -> @ 누락
    "@da.com",  # 틀린 이메일 -> ID 누락
    "daislove@isnit",  # 틀린 이메일 -> 도메인 잘못됨
    "user@domain.net",  # 틀린 이메일 -> 허용되지 않는 접미사
]

def check_email(email_list):
    for email in email_list:
        if email.count('@') != 1:
            print(f"유효하지 않은 이메일입니다: '{email}' 이유: '@가 누락' 또는 'ID가 누락'")
            continue

        username, domain = email.split('@')

        if not username:
            print(f"유효하지 않은 이메일입니다: '{email}' 이유: 'ID가 누락'")
            continue

        if '.' not in domain:
            print(f"유효하지 않은 이메일입니다: '{email}' 이유: '적절하지 않은 도메인'")
            continue

        if not (domain.endswith('.com') or domain.endswith('.co.kr')):
            print(f"유효하지 않은 이메일입니다: '{email}' 이유: '허용되지 않는 접미사'")
            continue

        print(f"유효한 이메일입니다: '{email}'")

check_email(email_list)

''' 출력 결과
유효한 이메일입니다: 'example@example.com'
유효한 이메일입니다: 'yangbujang@email.co.kr'
유효하지 않은 이메일입니다: 'iamhungry.com' 이유: '@가 누락'
유효하지 않은 이메일입니다: '@da.com' 이유: 'ID가 누락'
유효하지 않은 이메일입니다: 'daislove@isnit'  이유: '적절하지 않은 도메인'
'''
728x90