파이썬 문자열에서 특정 문자열을 만들 수 있는지 확인하는 프로그램

조회수 363회

예를 들어

우선 두가지 문자열을 입력받는데,

Alice in wonderland

Aciwl

이렇게 입력을 받습니다 Aciwl라는 문자열은 Alice in wonderland라는 글자에서 몇놈들만 쳐내면 만들어낼 수 있는 문자열이니까 출력값은 '가능함'이 되고

불가능한 경우는

Alice in wonderland

Awalc

이런 경우입니다 순서를 뒤섞지 않는 이상 다른 놈들을 아무리 지워도 아래의 문자열을 만들 수는 없는 경우요

이럴 땐 어떤 함수를 활용해야 하는지부터가 막막해서 질문드립니다 ㅠ

  • 숙제죠? nowp 2020.9.17 09:11
  • 해당 함수를 만드는게 문제인거같은데요... 김호원 2020.9.17 09:17

2 답변

  • 좋아요

    0

    싫어요
    채택 취소하기
    def compare(a,b):
        ap = 0
        bp = 0
    
        if a[ap] != b[bp]:
            print("Not matched")
    
        ap += 1
        bp += 1
    
        while ap < len(a) and bp < len(b):
            if a[ap] != b[bp]:
                ap += 1
            else:
                ap += 1
                bp += 1
    
        if bp != len(b):
            print("Not Match")
        else:
            print("Match :D")
    
    a = 'Alice in wonderland'
    b = 'Aciwl'
    
    compare(a,b)
    

    함수를 만드는 문제이고 다음부터 누군가든 아무개든....

    질문했을때에는 최소한의 시도를 보여주시는게 예의라고 생각합니다.

    • 도움 주셔서 감사합니다 ㅜ 새벽에 너무 멘붕이 와가지고 정신없이 올렸네요.. 죄송합니다 함수를 만들 생각 없이 문자열끼리 인덱스 비교해가면서 이미 두번째 문자열에 쓰인 인덱스는 슬라이싱해서 다시 비교하는 식으로 코드 짜보려고 했는데 아무리 해도 안되어서요 혹시 몰라서 제가 시도하다 막혔던 코드 답변에 달아보겠습니다 손봐달라는 건 아니고 그냥 저런 식으로 하다가 말았구나 하심 될 거 같아여 김예진 2020.9.17 12:08
    • 제가 드린 코드중 첫값 검증(line 5~9)하는건 제외해도 동일하게 동작할거예요 수고하세요 :3 김호원 2020.9.17 16:18
  • s = input()
    t = input()
    
    
    for i in range(len(t)-1):
        Find = True
            if s.find(t[i])!= -1:
           s = s[s.find(t[i])+1:]
        else:
            Find = False
    if Find:
        print("Yes")
    else:
        print("No")
    

    이런 식으로 만들다가 막혔었어요

    엊그제 시작한 왕초보라 실력 게시하기가 부끄러워서 첨부할 생각도 못했나봐요. 도움 주셔서 정말 감사합니다

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)