[Python] (문제풀이) 중간시험 복기 (WeCode)

이태권 (Taekwon Lee)·2022년 6월 3일
0
post-thumbnail

3번 문제 (get_prefix)

"get_prefix" 함수를 작성하세요.
문자열이 주어졌을때, “-”를 기준으로 앞에 있는 문자열을 반환하세요.

print(get_prefix('BTC-KRW')) # --> BTC

접근 방식

split 매서드를 이용하면 간단히 풀 수 있는 문제이다.
1. -가 기준이기에 split('-')을 하고
2. 앞에 있는 문자열이기에 [0](인덱스 0)을 뒤에 적으면 된다.

매서드 split

기본형은 sting.split(separator, maxsplit)으로
1. separator구분할 문자이다. 선택형이며, 없을 경우, 모든 whitespace가 기본값이다.
2. maxsplit구분할 횟수이다. 선택형이며, 없을 경우, -1로 고정이며, 모든 경우 가 기본값이다.

내 답안

def get_prefix(str):
  return str.split('-')[0]

4번 문제 (get_find)

"get_find" 함수를 작성하세요.
문자와 문자열이 주어졌을 때, "get_find" 함수는 주어진 문자열에서
함께 주어진 문자가 나타나는 첫 번째 위치를 반환합니다.

  • Notes:
    • 문자열의 첫번째 문자는 인덱스 값 0을 가집니다.
    • 만약 문자열에 해당 문자가 여러번 나타나면, 첫번째로 나타나는 위치를 반환해야 합니다.
    • 만약 문자가 문자열에 존재하지 않는다면, -1 을 반환해야 합니다.
    • find 함수를 사용하지 마세요.

접근 방식

  1. 우선 예외 조건을 생각하여 if 문에 넣는다.
    • 문자가 문자열에 없으면,-1를 반환한다.
  2. 예외 조건이 아닌 것들(else) 중
    • for 문을 통하여 str을 반복한다.
    • 만약 원하는 문자 char가 해당 str의 인덱스와 일치하면
    • 해당 인덱스를 반복한다

내 답안

def get_find(char, str):
  if char not in str:
    return -1
  else:
    for i in range(0, len(str)):
      if char == str[i]:
        return i

5번 문제 (find_longest_word)

주어진 리스트 안에 있는 단어 중, 가장 긴 단어를 찾을 수 있도록 함수를 완성하세요.

접근 방식

  1. 단어의 길이가 가장 긴 변수 max_len을 선언, 할당한다.
  2. for 문으로 words의 단어 element를 반복한다
  3. if 문으로 만약 해당 단어의 길이가 max_len보다 크면,
  4. max_len의 값에 해당 element의 길이를 할당한다.
  5. 반환할 가장 긴 단어의 값 result에 해당 element를 할당한다.
  6. element가 끝날 때까지 3번을 반복한다.
  7. result의 값을 반환한다.

내 답안

def find_longest_word(words):
  max_len = -1
  for element in words:
   if len(element) > max_len:
     max_len = len(element)
     result = element
  return result

참고 자료

(w3schools) Python String split() Method

(GeeksforGeeks) Python | Longest String in list

profile
(Backend Dev.) One step at a time

1개의 댓글

comment-user-thumbnail
2022년 6월 4일

find_longest_word이 가장 긴 문자열을 2개 이상 가지고 있을수 있으니 List 반환이 좋지 않을까요?

답글 달기