728x90
๋ฐ์ํ
"""
์ฌ๋ฌ ์ธ๋ก ์ฌ์์ ์์์ง๋ ๋ด์ค, ํนํ ์๋ณด์ฑ ๋ด์ค๋ฅผ ๋ณด๋ฉด ๋น์ท๋น์ทํ ์ ๋ชฉ์ ๊ธฐ์ฌ๊ฐ ๋ง์
์ ์ ํ์ํ ๊ธฐ์ฌ๋ฅผ ์ฐพ๊ธฐ๊ฐ ์ด๋ ต๋ค. Daum ๋ด์ค์ ๊ฐ๋ฐ ์
๋ฌด๋ฅผ ๋งก๊ฒ ๋ ์ ์
์ฌ์ ํ๋ธ๋
์ฌ์ฉ์๋ค์ด ํธ๋ฆฌํ๊ฒ ๋ค์ํ ๋ด์ค๋ฅผ ์ฐพ์๋ณผ ์ ์๋๋ก ๋ฌธ์ ์ ์ ๊ฐ์ ํ๋ ์
๋ฌด๋ฅผ ๋งก๊ฒ ๋์๋ค.
์์นด๋ ์ ์ฌ๋๋ ์งํฉ ๊ฐ์ ์ ์ฌ๋๋ฅผ ๊ฒ์ฌํ๋ ์ฌ๋ฌ ๋ฐฉ๋ฒ ์ค์ ํ๋๋ก ์๋ ค์ ธ ์๋ค.
๋ ์งํฉ A, B ์ฌ์ด์ ์์นด๋ ์ ์ฌ๋ J(A, B)๋ ๋ ์งํฉ์ ๊ต์งํฉ ํฌ๊ธฐ๋ฅผ
๋ ์งํฉ์ ํฉ์งํฉ ํฌ๊ธฐ๋ก ๋๋ ๊ฐ์ผ๋ก ์ ์๋๋ค.
์๋ฅผ ๋ค์ด ์งํฉ A = {1, 2, 3}, ์งํฉ B = {2, 3, 4}๋ผ๊ณ ํ ๋,
๊ต์งํฉ A ∩ B = {2, 3}, ํฉ์งํฉ A ∪ B = {1, 2, 3, 4}์ด ๋๋ฏ๋ก,
์งํฉ A, B ์ฌ์ด์ ์์นด๋ ์ ์ฌ๋ J(A, B) = 2/4 = 0.5๊ฐ ๋๋ค.
์งํฉ A์ ์งํฉ B๊ฐ ๋ชจ๋ ๊ณต์งํฉ์ผ ๊ฒฝ์ฐ์๋ ๋๋์
์ด ์ ์๋์ง ์์ผ๋
๋ฐ๋ก J(A, B) = 1๋ก ์ ์ํ๋ค
(์ค๋ต)
"""
def solution(str1, str2):
answer = 0
s1 = [str1[i].lower()+str1[i+1].lower() for i in range(len(str1)-1) if ('a'<=str1[i].lower()<='z' and 'a'<=str1[i+1].lower()<='z')]
s2 = [str2[i].lower()+str2[i+1].lower() for i in range(len(str2)-1) if ('a'<=str2[i].lower()<='z' and 'a'<=str2[i+1].lower()<='z')]
numerator = 0
for v in s1:
if v in s2:
s2.remove(v)
numerator+=1
denominator = len(s1+s2)
if numerator==0 and denominator==0:
return 65536
return int(numerator/denominator*65536)
"""
-> "FRANCE"์ "FRENCH"๊ฐ ์ฃผ์ด์ก์ ๋, ์ด๋ฅผ ๋ ๊ธ์์ฉ ๋์ด์ ๋ค์ค์งํฉ์ ๋ง๋ค ์ ์๋ค.
๊ฐ๊ฐ {FR, RA, AN, NC, CE}, {FR, RE, EN, NC, CH}๊ฐ ๋๋ฉฐ ์ด๋ ์๋ฌธ์๋ก ๋ ๊ธ์ ์๋ง ์ ํจํ๊ณ ,
๊ธฐํ ๊ณต๋ฐฑ์ด๋ ์ซ์, ํน์ ๋ฌธ์๊ฐ ๋ค์ด์๋ ๊ฒฝ์ฐ๋ ๊ทธ ๊ธ์ ์์ ๋ฒ๋ฆฐ๋ค.
์ฌ๊ธฐ์ ๋จผ์ str1์ ์งํฉ๊ณผ str2์ ์งํฉ์ ๋ง๋ค์ด์ผ ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
๊ทธ๋ฆฌ๊ณ ์๋ฌธ์๊ฐ ์๋๋ผ๋ฉด ์งํฉ์ ์ถ๊ฐํ๋ฉด ์๋๋ ์กฐ๊ฑด์ ์ถ๊ฐํ์๋ค.
str1[i]+str1[i+1]์ด ์ ๋ถ ์๋ฌธ์๋ผ๋ฉด ์งํฉ์ ์ถ๊ฐํ๊ณ , ์๋๋ผ๋ฉด ๋ฃ์ง ์์๋ค.
๊ทธ ๋ค์์ ๊ต์งํฉ๊ณผ ํฉ์งํฉ์ ๊ตฌํ๋ฉด ๋๋ค.
๊ต์งํฉ์ s1์งํฉ์ ํ๋์ฉ ๊ฐ์ ธ์์ s2์ ๊บผ๋ด์จ๊ฒ ์์ผ๋ฉด ๊ต์งํฉ์ ๊ฐ์๋ฅผ 1๊ฐ ๋๋ ธ๋ค.
์ฌ๊ธฐ์ s2.remove๋ฅผ ํ ์ด์ ๋ ํฉ์งํฉ์ ๊ณ์ฐํ ๋ s1์ s2์ ์ค๋ณต์ ์ง์์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ๋๋ค ๊ต์งํฉ๊ณผ ํฉ์งํฉ์ด ๊ณต์งํฉ์ด๋ผ๋ฉด 65536์ ๋ฆฌํดํ๊ณ
์๋๋ผ๋ฉด ๊ณ์ฐํ์ฌ ๋ฆฌํดํด์ฃผ์๋ค.
"""
728x90
๋ฐ์ํ
๋๊ธ