[Python 문제풀이] 5일차

2020. 7. 13. 11:0003. Resources/Python

728x90
반응형

Day_5

Q10. commonCharacterCount

Given two strings, find the number of common characters between them.

def commonCharacterCount(s1, s2):
    s3 = list(s1)
    s4 = list(s2)

    save = list()

    if len(s3) >= len(s4):
        for i in range(len(s4)):
            Character = s4[i]
            try:
                Idx = s3.index(Character)
            except:
                pass
            else:
                save.append(s3.pop(Idx))
    else:
        for i in range(len(s3)):
            Character = s3[i]
            try:
                Idx = s4.index(Character)
            except:
                pass
            else:
                save.append(s4.pop(Idx))

    return len(save)

작성 흐름

# def commonCharacterCount(s1, s2):

# 테스트를 위한 문자열
s1 = "aabcc"
s2 = "adcaa"

# 뒤에서 인덱스 찾고 pop 할 때 str형은 pop을 할 수 없어서 list 처리를 해주는 부분
s3 = list(s1)
s4 = list(s2)

save = list()

# 알고리즘
# 두 입력 중 길이가 짧은 녀석을 먼저 찾는다.
# 짧은 녀석의 길이로 반복을 한다
# 짧은 녀석의 첫 값을 확인한다.
# 긴 녀석에서 해당 값을 찾아서 pop 하고, 이를 다른 리스트에 저장한다.
if len(s1) >= len(s2):
    for i in range(len(s2)):
        Character = s2[i]
        try:
            Idx = s3.index(Character)
        except:
            pass
        else:
            save.append(s3.pop(Idx))
else:
    for i in range(len(s1)):
        Character = s1[i]
        try:
            Idx = s4.index(Character)
        except:
            pass
        else:
            save.append(s4.pop(Idx))

print(len(save))
반응형

'03. Resources > Python' 카테고리의 다른 글

[Python 문제풀이] 7일차  (0) 2020.07.15
[Python 문제풀이] 6일차  (0) 2020.07.14
[Python 문제풀이] 4일차  (0) 2020.07.12
[Python 문제풀이] 3일차  (0) 2020.07.11
[Python 문제풀이] 2일차  (0) 2020.07.10