Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

9-kjs254 #33

Merged
merged 2 commits into from
Mar 22, 2024
Merged

9-kjs254 #33

merged 2 commits into from
Mar 22, 2024

Conversation

kjs254
Copy link
Member

@kjs254 kjs254 commented Mar 10, 2024

πŸ”— 문제 링크

λ‰΄μŠ€ ν΄λŸ¬μŠ€ν„°λ§

βœ”οΈ μ†Œμš”λœ μ‹œκ°„

2μ‹œκ°„

해석 1μ‹œκ°„

μ½”λ“œμž‘μ„± 1μ‹œκ°„

μž…λ‹ˆλ‹€!!

✨ μˆ˜λ„ μ½”λ“œ

1. λ¬Έμ œν•΄μ„

기좜문제라 μ„œλ‘ μ΄ 많이 κΈ΄ λ¬Έμ œμž…λ‹ˆλ‹€.

λ¬Έμ œμ— λ‚˜μ˜¨ μ˜ˆμ‹œλ₯Ό λ“€μ–΄ μ΅œλŒ€ν•œ κ°„λž΅ν•˜κ²Œ 문제λ₯Ό μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

$A = {1, 1, 2, 2, 3}$

$B = {1, 2, 2, 4, 5}$

μ—μ„œ 쀑볡을 κ°μ•ˆν•œ ꡐ집합 $A \cap B = {1, 2, 2}$, 합집합 $A \cup B = {1, 1, 2, 2, 3, 4, 5}$ 을 κ΅¬ν•©λ‹ˆλ‹€.

이 κ΅μ§‘ν•©μ—μ„œ $\frac{|A \cap B|}{|A \cup B|}$ 즉, $\frac{3}{7}$을 ꡬ할 수 μžˆμŠ΅λ‹ˆλ‹€.

이 값을 μžμΉ΄λ“œ μœ μ‚¬λ„λΌκ³  ν•©λ‹ˆλ‹€.

이에 μ•žμ„œ μž…λ ₯으둜 λ°›λŠ” λ¬Έμžμ—΄μ„ λ‹€μŒκ³Ό 같이 μ²˜λ¦¬ν•˜μ—¬ 집합 $A$ 와 $B$ λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.

μž…λ ₯μœΌλ‘œλŠ” str1κ³Ό str2의 두 λ¬Έμžμ—΄μ΄ λ“€μ–΄μ˜¨λ‹€. 각 λ¬Έμžμ—΄μ˜ κΈΈμ΄λŠ” 2 이상, 1,000 μ΄ν•˜μ΄λ‹€.

μž…λ ₯으둜 λ“€μ–΄μ˜¨ λ¬Έμžμ—΄μ€ 두 κΈ€μžμ”© λŠμ–΄μ„œ λ‹€μ€‘μ§‘ν•©μ˜ μ›μ†Œλ‘œ λ§Œλ“ λ‹€. μ΄λ•Œ 영문자둜 된 κΈ€μž 쌍만 μœ νš¨ν•˜κ³ , 기타 κ³΅λ°±μ΄λ‚˜ 숫자, 특수 λ¬Έμžκ°€ λ“€μ–΄μžˆλŠ” κ²½μš°λŠ” κ·Έ κΈ€μž μŒμ„ 버린닀. 예λ₯Ό λ“€μ–΄ "ab+"κ°€ μž…λ ₯으둜 λ“€μ–΄μ˜€λ©΄, "ab"만 λ‹€μ€‘μ§‘ν•©μ˜ μ›μ†Œλ‘œ μ‚Όκ³ , "b+"λŠ” 버린닀.

닀쀑집합 μ›μ†Œ 사이λ₯Ό 비ꡐ할 λ•Œ, λŒ€λ¬Έμžμ™€ μ†Œλ¬Έμžμ˜ μ°¨μ΄λŠ” λ¬΄μ‹œν•œλ‹€. "AB"와 "Ab", "ab"λŠ” 같은 μ›μ†Œλ‘œ μ·¨κΈ‰ν•œλ‹€.

FRANCE 의 경우 [FR, RA, AN, NE, CE] 둜 λ‚˜λˆ μ§‘λ‹ˆλ‹€.

μœ„ κ·œμΉ™μ— 따라 μž…λ ₯받은 두 λ¬Έμžμ—΄μ„ μ§‘ν•©μœΌλ‘œ μ²˜λ¦¬ν•˜μ—¬ μžμΉ΄λ“œ μœ μ‚¬λ„λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

μ²˜λ¦¬ν•΄μ•Όν•  μš”μ†Œλ₯Ό μ„ΈλΆ„ν™” ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

  1. λ¬Έμžμ—΄ 두 κΈ€μžμ”© 끊기

  2. μ•ŒνŒŒλ²³ νŒλ…

  3. λŒ€μ†Œλ¬Έμž 톡일

  4. 쀑볡 ꡐ집합과 쀑볡 합집합

  5. μžμΉ΄λ“œ μœ μ‚¬λ„ 계산

1, 2, 3은 λ¬Έμžμ—΄ λ©”μ†Œλ“œμ™€ μŠ¬λΌμ΄μ‹±λ§Œμ„ μ΄μš©ν•˜μ—¬ κ°„λ‹¨ν•˜κ²Œ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 5λΆ„ κ±Έλ ΈμŠ΅λ‹ˆλ‹€

4의 집합 κ΅¬ν•˜κΈ°μ—μ„œ μ‹œν–‰μ°©μ˜€κ°€ λ§Žμ•˜μŠ΅λ‹ˆλ‹€..



2. μˆ˜λ„μ½”λ“œ

메인 ν•¨μˆ˜μ— 5가지λ₯Ό λͺ¨λ‘ λ„£μœΌλ €λ‹ˆ 가독성과 λ³€μˆ˜λͺ…에 λ³„λ‘œ 쒋지 μ•Šμ•„ 보여 1~3λ²ˆμ„ 담은 ν•¨μˆ˜, 4λ²ˆμ„ 담은 ν•¨μˆ˜λ₯Ό κ΅¬ν˜„ν•˜κ³  λ©”μΈν•¨μˆ˜μ—μ„œ μžμΉ΄λ“œ μœ μ‚¬λ„λ₯Ό κ³„μ‚°ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

<1~3번 ν•¨μˆ˜> ( λ‘κΈ€μžμ”© 끊기 / μ•ŒνŒŒλ²³ νŒλ… / λŒ€μ†Œλ¬Έμž 톡일 )

  • λ¬Έμžμ—΄ μŠ¬λΌμ΄μ‹±, λ¬Έμžμ—΄ λ©”μ†Œλ“œλ₯Ό μ΄μš©ν•˜μ—¬ κ΅¬ν˜„ν•©λ‹ˆλ‹€.
  def MakeSet(s): 
  lst = []
  for i,_ in enumerate(s[:-1]):
      a = s[i:i+2] # μŠ¬λΌμ΄μ‹±μœΌλ‘œ λ‘κΈ€μžμ”© 끊기
      if a.isalpha(): # isalpha() λ©”μ†Œλ“œλ‘œ μ•ŒνŒŒλ²³ νŒλ…
          lst.append(a.lower()) # lower() λ©”μ†Œλ“œλ‘œ μ•ŒνŒŒλ²³ μ†Œλ¬Έμž 톡일
  return lst

<4번 ν•¨μˆ˜> (쀑볡 ꡐ집합과 쀑볡 합집합)

기본적인 μ›λ¦¬λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.


1. 두 μ§‘ν•©μ—μ„œ 일반적인 ꡐ집합과 합집합을 κ΅¬ν•©λ‹ˆλ‹€.

2. 이 합집합을 μˆœνšŒν•˜μ—¬ 각각의 두 집합에 κ·Έ μˆ˜κ°€ μžˆλŠ” 개수λ₯Ό 각각 μ €μž₯ν•©λ‹ˆλ‹€. 

3. κ°œμˆ˜κ°€ 적은 μͺ½μ€ κ·Έ 개수만큼 쀑볡 ꡐ집합 λ¦¬μŠ€νŠΈμ— μ‚½μž…ν•©λ‹ˆλ‹€.
  - 3.1. κ°œμˆ˜κ°€ λ§Žμ€ μͺ½μ€ 쀑볡 합집합 λ¦¬μŠ€νŠΈμ— μ‚½μž…ν•©λ‹ˆλ‹€.

4. κ·Έ 길이λ₯Ό 각각 좜λ ₯ν•©λ‹ˆλ‹€. (μžμΉ΄λ“œ μœ μ‚¬λ„ 계산을 μœ„ν•΄μ„œ)

μ•„λž˜λŠ” 이λ₯Ό κ΅¬ν˜„ν•œ μ½”λ“œμž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ΄κ²ƒλ§Œ 봐선 μ§κ΄€μ μœΌλ‘œ 이해가 λ˜μ§€ μ•ŠκΈ°μ— μ•žμ„œ λ“  μ˜ˆμ‹œλ₯Ό 톡해 μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

def func(l1, l2): 
    intersection_set, union_set = [], []
    inter = set(l1) & set(l2)
    union = set(l1) | set(l2)
    
    for n in union:
        intersection_num = min(l1.count(n),l2.count(n))
        union_num = max(l1.count(n),l2.count(n))
        
        for _ in range(intersection_num):
            intersection_set.append(n)
            
        for _ in range(union_num):
            union_set.append(n)

    return len(intersection_set), len(union_set)

(μ˜ˆμ‹œ)

$A = {1, 1, 2, 2, 3}$

$B = {1, 2, 2, 4, 5}$

μ—μ„œ

쀑볡 합집합 $A \cup B = {1, 1, 2, 2, 3, 4, 5}$, 쀑볡 ꡐ집합 $A \cap B = {1, 2, 2}$ 을 κ΅¬ν•˜κΈ° μœ„ν•΄

일반 합집합 $A \cup B = {1, 2, 3, 4, 5}$, 쀑볡 ꡐ집합 $A \cap B = {1, 2}$ 을 λ¨Όμ € κ΅¬ν•©λ‹ˆλ‹€.

μ›μ†Œ 1은 $A$ 에 2개 $B$ 에 1개 μ‘΄μž¬ν•©λ‹ˆλ‹€. 쀑볡 ν•©μ§‘ν•©μ˜ 경우 1이 2개 있으며 쀑볡 κ΅μ§‘ν•©μ˜ 경우 1이 1개 μ‘΄μž¬ν•©λ‹ˆλ‹€.

μ›μ†Œ 2의 κ²½μš°μ—λ„ 합집합엔 2개, ꡐ집합엔 1개 μ‘΄μž¬ν•©λ‹ˆλ‹€.

3의 경우 합집합에 1개, ꡐ집합에 0개 μ‘΄μž¬ν•©λ‹ˆλ‹€.

이λ₯Ό 따라 max() 및 min()을 μ΄μš©ν•˜μ—¬ 쑰건에 맞게 μ‚½μž…ν•΄μ£Όλ©΄ λ˜κ² μŠ΅λ‹ˆλ‹€.




μ•„λž˜ 전체 μ½”λ“œλŠ” λ©”μΈμ½”λ“œλ§Œ μΆ”κ°€ν•œ κ²ƒμž…λ‹ˆλ‹€.

μ „μ²΄μ½”λ“œ

def MakeSet(s): #2κΈ€μžμ”© λŠμ€ μ•ŒνŒŒλ²³λ§Œ 리슀트둜 좜λ ₯
    lst = []
    for i,_ in enumerate(s[:-1]):
        a = s[i:i+2]
        if a.isalpha():
            lst.append(a.lower())
    return lst

def func(l1, l2): #쀑볡 ꡐ집합과 쀑볡 ν•©μ§‘ν•©μ˜ 길이λ₯Ό 각각 좜λ ₯
    intersection_set, union_set = [], []
    inter = set(l1) & set(l2)
    union = set(l1) | set(l2)
    
    for n in union:
        intersection_num = min(l1.count(n),l2.count(n))
        union_num = max(l1.count(n),l2.count(n))
        
        for _ in range(intersection_num):
            intersection_set.append(n)
            
        for _ in range(union_num):
            union_set.append(n)

    return len(intersection_set), len(union_set)

def solution(str1, str2): #메인 μ½”λ“œ
    answer = 0
    
    arr1 = MakeSet(str1)
    arr2 = MakeSet(str2)
    
    a,b = func(arr1,arr2)
    
    if b:
        answer = int((a/b)*65536)
    else:
        answer = 65536
    
    return answer

πŸ“š μƒˆλ‘­κ²Œ μ•Œκ²Œλœ λ‚΄μš©

μžμΉ΄λ“œ μœ μ‚¬λ„λΌλŠ” 것에 λŒ€ν•΄ 처음 μ•Œκ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ•Œμ•„λ³΄λ‹ˆ λ¬Έμ œμ—μ„œ λ“  μ˜ˆμ‹œμ²˜λŸΌ λ¬Έμ„œμ˜ μœ μ‚¬λ„λ₯Ό κ³„μ‚°ν•˜λŠ”λ° 쓰인닀고 ν•©λ‹ˆλ‹€.

μœ„ 같은 코딩이 κ°€λŠ₯ν•œκ±΄ 파이썬의 집합 μžλ£Œν˜• set이 쀑볡을 μ•Œμ•„μ„œ μ œκ±°ν•΄μ£Όλ©° 합집합과 ꡐ집합도 κ°„λ‹¨ν•˜κ²Œ μ—°μ‚°ν•΄μ£ΌκΈ° λ•Œλ¬Έμ΄λΌ λŠκΌˆμŠ΅λ‹ˆλ‹€.

set μžλ£Œν˜•μ„ μ°Έκ³ ν•΄κ°€λ©° λ”μš± 재밌게 ν’€ 수 μžˆμ—ˆλ˜ 것 κ°™μŠ΅λ‹ˆλ‹€.

κ°μ‚¬ν•©λ‹ˆλ‹€.

@9kyo-hwang
Copy link

νŒŒμ΄μ¬μ—λŠ” CounterλΌλŠ” λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€. key와 ν•΄λ‹Ή key 개수λ₯Ό value에 μ €μž₯ν•΄ dictionary둜 λ°˜ν™˜ν•΄μ£ΌλŠ” λΌμ΄λΈŒλŸ¬λ¦¬μž…λ‹ˆλ‹€.
이λ₯Ό μ‘μš©ν•˜λ©΄ μ½”λ“œκ°€ 많이 κΉ”λ”ν•΄μ§‘λ‹ˆλ‹€.

from collections import Counter

def solution(str1, str2):
    m1 = Counter([str1[i:i+2].lower() for i in range(len(str1) - 1) if str1[i:i+2].isalpha()])
    m2 = Counter([str2[i:i+2].lower() for i in range(len(str2) - 1) if str2[i:i+2].isalpha()])
    ...

str1, str2λ₯Ό 2κΈ€μžμ”© λ–Όμ–΄λ‚΄ 문자둜만 μ΄λ£¨μ–΄μ ΈμžˆμœΌλ©΄ 이λ₯Ό μ·¨ν•˜λŠ” 리슀트λ₯Ό μš°μ„  μ €μž₯ν•©λ‹ˆλ‹€.
μ΄λ ‡κ²Œ λ§Œλ“€μ–΄μ§„ 리슀트λ₯Ό Counter 객체의 μƒμ„±μžλ‘œ λ„˜κ²¨μ£Όλ©΄ μ•Œμ•„μ„œ μ€‘λ³΅λ˜μ§€ μ•Šμ€ λ¬Έμžμ—΄λ§Œ 남기고, ν•΄λ‹Ή λ¬Έμžμ—΄μ˜ κ°œμˆ˜κ°€ value에 μ €μž₯된 λ”•μ…”λ„ˆλ¦¬ m1, m2λ₯Ό λ°˜ν™˜ν•΄μ€λ‹ˆλ‹€.

intersection = sum((m1 & m2).values())
union = sum((m1 | m2).values())

그럼 각 λ”•μ…”λ„ˆλ¦¬ m1, m2에 μ €μž₯된 value, 즉 λ¬Έμžμ—΄ 개수λ₯Ό κ°€μ Έμ™€μ„œ 각각 AND(&), OR(|)을 ν•œ κ²°κ³Όλ₯Ό μ €μž₯ν•©λ‹ˆλ‹€.

if union == 0:
    return 65536

similarity = intersection / union
return int(similarity * 65536)

λ§ˆμ§€λ§‰μœΌλ‘œ λ‹΄κΈ΄ 결과에 따라 μ μ ˆν•œ 값을 λ°˜ν™˜ν•΄μ£Όλ©΄ λ©λ‹ˆλ‹€.

from collections import Counter

def solution(str1, str2):
    m1 = Counter([str1[i:i+2].lower() for i in range(len(str1) - 1) if str1[i:i+2].isalpha()])
    m2 = Counter([str2[i:i+2].lower() for i in range(len(str2) - 1) if str2[i:i+2].isalpha()])
    
    intersection = sum((m1 & m2).values())
    union = sum((m1 | m2).values())
    
    if union == 0:
        return 65536
    
    similarity = intersection / union
    return int(similarity * 65536)

@kjs254
Copy link
Member Author

kjs254 commented Mar 17, 2024

νŒŒμ΄μ¬μ—λŠ” CounterλΌλŠ” λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€. key와 ν•΄λ‹Ή key 개수λ₯Ό value에 μ €μž₯ν•΄ dictionary둜 λ°˜ν™˜ν•΄μ£ΌλŠ” λΌμ΄λΈŒλŸ¬λ¦¬μž…λ‹ˆλ‹€. 이λ₯Ό μ‘μš©ν•˜λ©΄ μ½”λ“œκ°€ 많이 κΉ”λ”ν•΄μ§‘λ‹ˆλ‹€.

from collections import Counter

def solution(str1, str2):
    m1 = Counter([str1[i:i+2].lower() for i in range(len(str1) - 1) if str1[i:i+2].isalpha()])
    m2 = Counter([str2[i:i+2].lower() for i in range(len(str2) - 1) if str2[i:i+2].isalpha()])
    ...

str1, str2λ₯Ό 2κΈ€μžμ”© λ–Όμ–΄λ‚΄ 문자둜만 μ΄λ£¨μ–΄μ ΈμžˆμœΌλ©΄ 이λ₯Ό μ·¨ν•˜λŠ” 리슀트λ₯Ό μš°μ„  μ €μž₯ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ λ§Œλ“€μ–΄μ§„ 리슀트λ₯Ό Counter 객체의 μƒμ„±μžλ‘œ λ„˜κ²¨μ£Όλ©΄ μ•Œμ•„μ„œ μ€‘λ³΅λ˜μ§€ μ•Šμ€ λ¬Έμžμ—΄λ§Œ 남기고, ν•΄λ‹Ή λ¬Έμžμ—΄μ˜ κ°œμˆ˜κ°€ value에 μ €μž₯된 λ”•μ…”λ„ˆλ¦¬ m1, m2λ₯Ό λ°˜ν™˜ν•΄μ€λ‹ˆλ‹€.

intersection = sum((m1 & m2).values())
union = sum((m1 | m2).values())

그럼 각 λ”•μ…”λ„ˆλ¦¬ m1, m2에 μ €μž₯된 value, 즉 λ¬Έμžμ—΄ 개수λ₯Ό κ°€μ Έμ™€μ„œ 각각 AND(&), OR(|)을 ν•œ κ²°κ³Όλ₯Ό μ €μž₯ν•©λ‹ˆλ‹€.

if union == 0:
    return 65536

similarity = intersection / union
return int(similarity * 65536)

λ§ˆμ§€λ§‰μœΌλ‘œ λ‹΄κΈ΄ 결과에 따라 μ μ ˆν•œ 값을 λ°˜ν™˜ν•΄μ£Όλ©΄ λ©λ‹ˆλ‹€.

from collections import Counter

def solution(str1, str2):
    m1 = Counter([str1[i:i+2].lower() for i in range(len(str1) - 1) if str1[i:i+2].isalpha()])
    m2 = Counter([str2[i:i+2].lower() for i in range(len(str2) - 1) if str2[i:i+2].isalpha()])
    
    intersection = sum((m1 & m2).values())
    union = sum((m1 | m2).values())
    
    if union == 0:
        return 65536
    
    similarity = intersection / union
    return int(similarity * 65536)

라이브러리 ν•˜λ‚˜λ‘œ μ΄λ ‡κ²Œ κ°„λ‹¨ν•΄μ§€λ„€μš” 덜덜..

ν–‰λ ¬ κ³± κ΅¬ν˜„ λ¬Έμ œλ„ numpy둜 ν’€ 수 μžˆλŠ”λ° 보톡 μ½”λ”© ν…ŒμŠ€νŠΈμ—μ„œ μ΄λ ‡κ²Œ λͺ¨λ“  라이브러리λ₯Ό 자유둭게 μ‚¬μš©ν•΄λ„ λ˜λ‚˜μš”?

λ°±μ€€μ—μ„œλŠ” numpyλ₯Ό μ§€μ›ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” 말을 듀은 것 κ°™μŠ΅λ‹ˆλ‹€.

Copy link
Collaborator

@YIM2UL2ET YIM2UL2ET left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

합집합 ꡐ집합 κ΅¬ν•˜λŠ” λΆ€λΆ„μ—μ„œ κ½€λ‚˜ μ–΄λ ΅λ„€μš”.
문제λ₯Ό 보고 λ‚˜μ„œ μ •λ ¬λœ 값듀을 투 포인터λ₯Ό μ¨μ„œ ꡬ할 수 μžˆμ„ 것 κ°™λ‹€κ³  μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€.
근데 μ§€μ‚°λ‹˜ 방식을 보고 λ‚˜λ‹ˆ 이게 훨씬 직관적이고 κ°„λ‹¨ν•˜λ‹€κ³  μƒκ°λ˜λ„€μš”.
ν₯미둜운 λ¬Έμ œμ˜€μŠ΅λ‹ˆλ‹€. μˆ˜κ³ ν•˜μ…¨μŠ΅λ‹ˆλ‹€.

@9kyo-hwang
Copy link

라이브러리 ν•˜λ‚˜λ‘œ μ΄λ ‡κ²Œ κ°„λ‹¨ν•΄μ§€λ„€μš” 덜덜..

ν–‰λ ¬ κ³± κ΅¬ν˜„ λ¬Έμ œλ„ numpy둜 ν’€ 수 μžˆλŠ”λ° 보톡 μ½”λ”© ν…ŒμŠ€νŠΈμ—μ„œ μ΄λ ‡κ²Œ λͺ¨λ“  라이브러리λ₯Ό 자유둭게 μ‚¬μš©ν•΄λ„ λ˜λ‚˜μš”?

λ°±μ€€μ—μ„œλŠ” numpyλ₯Ό μ§€μ›ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” 말을 듀은 것 κ°™μŠ΅λ‹ˆλ‹€.

collectionsλ‚˜ heapq같은 건 μ•Œκ³ λ¦¬μ¦˜ 풀이에 λ°˜λ“œμ‹œ ν•„μš”ν•œ μžλ£Œκ΅¬μ‘°κ°€ μ‘΄μž¬ν•˜λ‹ˆκΉŒ μ“°κΈ΄ ν•˜λŠ”λ°, numpyλŠ” 주둜 인곡지λŠ₯ μ½”λ“œμ— μ‚¬μš©λΌμ„œ 잘 λͺ¨λ₯΄κ² λ„€μš”...
일단 μ œκ°€ λ³Έ 파이썬 PS μ½”λ“œ μ€‘μ—μ„œλŠ” numpyλ₯Ό μ“΄ μ½”λ“œλŠ” λͺ»λ΄€μŠ΅λ‹ˆλ‹€. numpyλŠ” python이 기본적으둜 λ“€κ³  μžˆλŠ” λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μ•„λ‹ˆλΌ μ•ˆλ˜μ§€ μ•Šμ„κΉŒ μ‹Άλ„€μš”.

Copy link
Collaborator

@rivkms rivkms left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

μžμΉ΄λ“œ μœ μ‚¬λ„, 쀑볡 ꡐ집합 및 쀑볡 합집합 λ“± μ œκ°€ λͺ¨λ₯΄λŠ” κ°œλ…μ΄ 정말 많이 λ‚˜μ˜¨ λ¬Έμ œμ˜€λ„€μš”!! μ²˜μŒμ— 문제λ₯Ό ν•΄μ„ν•˜λŠ” 것은 μ–΄λ €μ› μ§€λ§Œ PR을 읽어가며 μ‰½κ²Œ 이해할 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€

μ•½κ°„μ˜ 였λ₯˜κ°€ μžˆλ‹€κ³  ν•œλ‹€λ©΄...
FRANCE 의 경우 [FR, RA, AN, NE, CE] 둜 λ‚˜λˆ μ§‘λ‹ˆλ‹€.
라고 μ μ–΄μ£Όμ…¨λŠ”λ° NEκ°€ μ•„λ‹ˆλΌ NC인 것 κ°™μŠ΅λ‹ˆλ‹€.

또
일반 합집합 $A \cup B = {1, 2, 3, 4, 5}$, 쀑볡 ꡐ집합 $A \cap B = {1, 2}$ 을 λ¨Όμ € κ΅¬ν•©λ‹ˆλ‹€.
이 λΆ€λΆ„μ—μ„œ 일반 ꡐ집합이 μ•„λ‹Œμ§€ ν•œλ²ˆ 더 μ—¬μ­€λ΄…λ‹ˆλ‹€.

λ¬Όλ‘  κ·Έμ € 말μž₯λ‚œμ΄κ³  μ•½κ°„μ˜ μ‹€μˆ˜μ΄λ‹ˆ κ·Έλƒ₯ λ„˜μ–΄κ°€λ„ μ’‹μ§€λ§Œ 확인해주셔도 쒋을 것 κ°™μŠ΅λ‹ˆλ‹€.

쀑볡 합집합과 쀑볡 ꡐ집합을 κ΅¬ν•˜λŠ” μ½”λ“œλŠ” 되게 μΈμƒκΉŠκ²Œ λ΄€μŠ΅λ‹ˆλ‹€. 쒋은 μ½”λ“œμΈ 것 κ°™μŠ΅λ‹ˆλ‹€.

μˆ˜κ³ ν•˜μ…¨μŠ΅λ‹ˆλ‹€. 😁

Copy link
Collaborator

@mong3125 mong3125 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

μžμΉ΄λ“œ μœ μ‚¬λ„, ꡐ집합, 합집합에 λŒ€ν•΄μ„œ μ•Œμ•„λ³Ό 수 μžˆλŠ” λ¬Έμ œμ˜€μŠ΅λ‹ˆλ‹€.

μ œκ°€ ν’€λ•Œμ—λ„ μ•„μ΄λ””μ–΄λŠ” λ°”λ‘œ λ– μ˜€λ₯΄λŠ”λŒ€λ‘œ(λ¬Έμ œμ—μ„œ μ„€λͺ…ν•΄μ£ΌλŠ” κ·ΈλŒ€λ‘œ) ν’€λ©΄ λ˜λŠ” λ¬Έμ œμ˜€λŠ”λ° κ΅¬ν˜„ν•˜κΈ°κ°€ 쑰금 μ–΄λ €μ› λ„€μš”.

PR을 보고 λ„ˆλ¬΄ μ§κ΄€μ μœΌλ‘œ 잘 κ΅¬ν˜„ν•΄μ£Όμ…”μ„œ. 전체 μ½”λ“œλ§Œ 보고도 λ°”λ‘œ 이해할 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 잘 λ΄€μŠ΅λ‹ˆλ‹€!

@kjs254 kjs254 merged commit 8e78c88 into AlgoLeadMe:main Mar 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants