https://school.programmers.co.kr/learn/courses/30/lessons/17677

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 풀이

프로그래머스가 백준이랑 input받는 방식이 달라서… 시행착오를 많이 겪었다.

  1. 처음부터 모두 대문자로 바꿔준다.
  2. 알파벳을 확인하면서 2개씩 리스트에 넣어서 반환한다.
  3. 리스트를 비교해서 겹치면 cnt+1해주고 한 리스트에서만 삭제한다.
  4. → 더하면 합집합 , cnt → 교집합 수

코드

def slice(str):
    group=[]
    for i in range(len(str)-1):
        if str[i].isalpha() and str[i+1].isalpha():
            group.append(str[i:i+2])
    return group

def solution(str1, str2):
    str1=slice(str1.upper())
    str2=slice(str2.upper())
    cnt=0
    if not str1 and not str2:
        return 65536
    for s in str1:
        if s in str2:
            cnt+=1
            str2.remove(s)
    answer = int((cnt/(len(str1)+len(str2)))*65536)
    return answer