Assignment 1

[정보]

1) Due Date: 2019년 9월 27일 (금), 23시 59분

2) 제출방법: colab으로 작성된 notebook URL을 EL사이트에 제출 (EL 사이트의 본인 게시물에서 클릭이 되도록 함)

3) 내용: 반드시 python code와 수행 결과를 colab notebook 내에 작성하여 넣고 이에 대한 설명등을 해당 코드 아래에 markdown cell 등에 넣어 기입하시오.

4) 숙제이후 소감 작성: 10개의 문제의 답을 모두 작성한 이후에 현재까지 강의를 들은 후의 소감, 숙제를 한 이후의 소감, 또는 전하고자 하는 말 등을 짧막하게라도 좋으니 마지막에 함께 작성하여 제출하시오.

5) 반드시 본인 스스로 문제를 해결하세요~~~

[문제]

  1. a="Hello Python" 문자열을 Slicing과 연결 연산자 (+)를 사용하여 "Python Hello"로 변경하시오.
    • [주의] a 변수 자체에 "Python Hello" 문자열이 저장되어야 함
  1. b="Hello Python World" 문자열을 Slicing과 연결 연산자 (+)를 사용하여 "World Python Hello"로 변경하시오.
    • [주의] b 변수 자체에 "World Python Hello" 문자열이 저장되어야 함
  1. c="Hello"를 "olleH"로 변경하시오
    • [주의] c 변수 자체에 "olleH" 문자열이 저장되어야 함
  1. 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]의 결과를 확인하고 그 결과에 대한 이유를 정확하게 설명하시오.
  1. for문을 활용하여 1부터 100사이의 홀수를 출력하시오.
  1. while문을 활용하여 1부터 100사이의 짝수의 합을 계산하여 출력하시오.
  1. 사용자로 부터 임의의 정수를 입력받고, 해당 숫자를 역순으로 출력하는 프로그램을 작성하시오.

    [실행 예]

     정수를 입력하세요: 3125
     숫자 역순은 5213 입니다.
  1. 사용자로 부터 정수를 입력받아서 1부터 그 사이에 존재하는 소수 (Prime number)를 출력하는 파이썬 프로그램을 작성하시오.
  1. Kevin과 Stuart는 게임을 한다. 규칙은 아래와 같다.

    • 두 플레이어에게 같은 string, S, 가 주어진다.
    • 두 플레이어는 string S의 문자를 사용하여 substring을 만들어야 한다(중복 가능).
    • Stuart는 자음으로 시작하는 단어를 만들어야 한다.
    • Kevin은 모음으로 시작하는 단어를 만들어야 한다.
    • 게임은 두 플레이어가 만들 수 있는 모든 단어를 만들었을 때 끝난다.
    • 점수 계산 : substring 1개당 +1 점을 획득한다. (아래 그림 참고)
  • 사용자로 부터 대문자로 이루어진 string S를 입력받고, 승자와 그의 점수를 출력하는 프로그램을 작성하시오.

    [실행 예]

      string S를 입력하세요: BANANA
      승자: Stuart 점수: 12
  1. 알파벳 소문자만으로 이루어진 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'