프로그래머스_LV.0_문자열안에 문자열

Dreamer ·2022년 12월 6일
0

코딩테스트 준비

목록 보기
24/93

1. quiz

  • 문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.

2. answer

def solution(str1, str2):
    return 2 if str1.replace(str2, '') == str1 else 1

3. 다른 사람의 풀이

def solution(str1, str2):
    return 1 if str2 in str1 else 2
def solution(str1, str2):
    if str1.count(str2):
        return 1
    else:
        return 2
  • 모두 제각각 다른 풀이들이 존재한다.
  • 난 replace()함수를 써서 풀어냈다면, 간단하게 in 을 사용하여 확인 후 결과를 낸 코드들이 가장 많다.

4.

4.1. find(), index()

  • string.find(찾을 문자, 시작 Index, 끝 Index)
  • 찾는 문자가 존재한다면, 그 문자의 index를 반환하고 만약 존재하지 않는다면 -1을 반환한다.
def solution(str1, str2):
    return 1 if str1.find(str2) >= 0 else 2
  • 즉, str1에서 str2를 찾았을 때 만약 index 가 존재한다면 0보다 클 것이기에, 존재하면 1로, 없으면 2를 반환하게 된다. (str2가 위치한 index를 가져오게 된다)

  • 단!!!!! 문자열만 사용이 가능하다. 리스트, 튜플, 딕셔너리 자료형에서는 find 함수를 사용할 수 없다. 만일 사용하게 되면 AttributeError 에러가 발생한다.

  • index( ) : 찾는 문자가 없는 경우에 ValueError 에러가 발생한다.문자열, 리스트, 튜플 자료형에서 사용 가능하고 딕셔너리 자료형에는 사용할 수 없어 AttributeError 에러가 발생한다.

4.2. count()

  • 문자열 안에서 찾고 싶은 문자의 개수를 찾을 수 있다. 튜플, 리스트, 집합과 같은 반복 가능한 iterable 자료형에서도 사용 가능
  • (찾을 객체).count(찾는 요소)
  • dictionary, set 자료형에서는 count 함수를 사용할 수 없다. AttributeError가 발생한다.
ef solution(str1, str2):
    if str1.count(str2):
        return 1
    else:
        return 2
profile
To be a changer who can overturn world

0개의 댓글