#!/usr/bin/env python # coding: utf-8 # # Assignment 1 # ### [정보] # #### 1) Due Date: 2021년 9월 24일 (금), 23시 59분 # # #### 2) 제출방법: 수업 홈페이지 하단의 "[숙제 제출 방법]" 참고 # # #### 3) 내용: 반드시 python code와 수행 결과를 jupyter notebook 내에 작성하여 넣고, 이에 대한 설명 등을 해당 코드 아래에 markdown cell 등에 넣어 기입하시오. # # #### 4) 숙제이후 소감 작성: 10개의 문제의 답을 모두 작성한 이후에 현재까지 강의를 들은 후의 소감, 숙제를 한 이후의 소감, 또는 전하고자 하는 말 등을 짧막하게라도 좋으니 jupyter notebook 마지막 markdown cell에 함께 작성하여 제출하시오. # # #### 5) 반드시 본인 스스로 문제를 해결하세요~~~ # # ### [문제] # 1. a="Hello Python" 문자열을 Slicing과 연결 연산자 (+)를 사용하여 "Python Hello"로 변경하시오. # - [주의] a 변수 자체에 "Python Hello" 문자열이 저장되어야 함 # 2. b="Hello Python World" 문자열을 Slicing과 연결 연산자 (+)를 사용하여 "World Python Hello"로 변경하시오. # - [주의] b 변수 자체에 "World Python Hello" 문자열이 저장되어야 함 # 3. c="Hello"를 "olleH"로 변경하시오 # - [주의] c 변수 자체에 "olleH" 문자열이 저장되어야 함 # 4. s="python"에 대해 다음 문제를 풀어보시오. # 1. s[0], s[0][0], s[0][0][0]은 각각 어떤 값이 나오는지 확인하고 그 이유를 나름대로 설명해 보시오. # 2. s[-100], s[100]은 값이 나오는지 에러가 나오는지 확인하고 그 결과에 대한 이유를 나름대로 설명해 보시오. # 3. s[-100, 100]은 값이 나오는지 에러가 나오는지 확인하고 그 결과에 대한 이유를 나름대로 설명해 보시오. # 4. s[1:-1]의 결과를 확인하고 그 결과에 대한 이유를 정확하게 설명하시오. # 5. s[3:-3]의 결과를 확인하고 그 결과에 대한 이유를 정확하게 설명하시오. # 5. for문을 활용하여 1부터 100사이의 홀수를 출력하시오. # 6. while문을 활용하여 1부터 100사이의 짝수의 합을 계산하여 출력하시오. # 7. 사용자로 부터 임의의 정수를 입력받고, 해당 숫자를 역순으로 출력하는 프로그램을 작성하시오. # # [실행 예] # ``` # 정수를 입력하세요: 3125 # 숫자 역순은 5213 입니다. # ``` # 8. 사용자로 부터 정수를 입력받아서 1부터 그 사이에 존재하는 소수 (Prime number)를 출력하는 파이썬 프로그램을 작성하시오. # 9. Kevin과 Stuart는 게임을 한다. 규칙은 아래와 같다. # # - 두 플레이어에게 같은 string, S, 가 주어진다. # - 두 플레이어는 string S의 문자를 사용하여 substring을 만들어야 한다(중복 가능). # - Stuart는 자음으로 시작하는 단어를 만들어야 한다. # - Kevin은 모음으로 시작하는 단어를 만들어야 한다. # - 게임은 두 플레이어가 만들 수 있는 모든 단어를 만들었을 때 끝난다. # - 점수 계산 : substring 1개당 +1 점을 획득한다. (아래 그림 참고) # - # - 사용자로 부터 대문자로 이루어진 string S를 입력받고, 승자와 그의 점수를 출력하는 프로그램을 작성하시오. # # [실행 예] # ``` # string S를 입력하세요: BANANA # 승자: Stuart 점수: 12 # ``` # 10. 알파벳 소문자만으로 이루어진 string, S, 가 주어지고 아래 2가지 연산을 수행할 수 있다. # - 추가 : string S의 끝에 알파벳 소문자 하나를 추가한다. # - 삭제 : string S의 마지막 문자 하나를 삭제한다. empty string에서 삭제 연산을 수행한 결과는 empty string이다. # # 두 개의 string, s와 t, 그리고 정수 k가 주어질 때, 정확히 k번의 연산을 통해 s를 t로 바꿀 수 있는지 판단하는 함수를 작성하시오. # In[1]: def appendDelete(s, t, k): ''' 함수 포맷 변경하지 마세요. s를 정확히 k번의 연산을 통해 t로 바꿀 수 있다면 'Yes'를 아니면 'No'를 return 해주세요. ''' return 'Yes' # or 'No' # - [예시] # ``` # 1. s = 'hackerhappy' t = 'hackerrank' k = 9 => 'Yes' # # 2. s = 'aba' t = 'aba' k = 7 => 'Yes' # # 3. s = 'ashley' t = 'ash' k = 2 => 'No' # # ```