[programmers]-スポーツウェア


1. Problem 📃


https://programmers.co.kr/learn/courses/30/lessons/42862

次の質問は、ユニホームを複数着持っていて、ない学生と紛失した学生が、問題の条件によって与えられると、体育の授業を受けることができる学生の数はいくらですか.

2. Logic 👨‍🏫

  • の複数の運動服の学生が盗まれる可能性のある問題条件の下で、紛失と保存の中で共存できる数字について、set資料型を利用して共存する値を削除し、
  • 左側の要素から探索を開始します.
  • 発見された場合、その値はs lossから削除されます.
  • 3. Code 💻


    1.私が解いたパスワード

    def solution(n, lost, reserve):
        s_lost = set(lost) - set(reserve)
        s_reserve = set(reserve) - set(lost)
        for i in s_reserve:
            if i-1 in s_lost:
                s_lost.remove(i-1)
            elif i+1 in s_lost:
                s_lost.remove(i+1)
        return n - len(s_lost)
    
    -----------출력을 위한 코드입니다-------------
    
    reserve = [1, 3, 6]
    lost = [2, 4, 5, 7]
    print(solution(7, lost, reserve))

    4. Feedback 📚


    1.set資料型


    1.集合資料型


    -set資料型は順序がなく、重複が許されないという特徴がある.
    # 집합 선언
    set1 = set([1,2,3])
    set2 = set("oddong hello")
     
    print set1
    print set2
    
    set([1, 2, 3])
    set([' ', 'o', 'n', 'd', 'l', 'o','d', 'e', 'l', 'h', 'g']) // 순서가 없는것을 볼 수 있다.

    2.集合へのデータの追加と削除

    # 집합 선언
    set1 = set([1,2,3])
     
    # 값 하나 추가 : add(x)
    set1.add(4)
    print set1
     
    # 값 여러개 추가 : update(x)
    set1.update([5,6,7,8,9,10])
    print set1
     
    # 값 제거 : remove(x)
    set1.remove(10)
    print set1
     
    # 집합 set1 제거
    del set1
    
    set([1, 2, 3, 4])
    set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
    set([1, 2, 3, 4, 5, 6, 7, 8, 9])

    3.インデックスを参照する必要がある場合

    # 집합 선언
    set1 = set([1,2,3])
    list1 = list(set1)
     
    print list1
    print list1[1]
    
    [1, 2, 3]
    2
    コレクションに順序がなく、インデックス参照値は使用できません.インデックスを参照するには、リストまたは凡例に変換する必要があります.

    4.集合演算

    # 집합 선언
    set1 = set([1,2,3])
    set2 = set([2,4,5,6])
    set3 = set() # 공집합
     
    # set1과 set2의 교집합
    print set1 & set2
    print set1.intersection(set2)
     
    # set1과 set2의 합집합
    print set1 | set2
    print set1.union(set2)
     
    # set1과 set2의 차집합
    print set1 - set2
    print set1.difference(set2)
    print set2.difference(set1)
     
    # set1과 set2의 합집합에서 교집합을 뺀 차집합
    print set1 ^ set2
    
    set([2])
    set([2])
     
    set([1, 2, 3, 4, 5, 6])
    set([1, 2, 3, 4, 5, 6])
     
    set([1, 3])
    set([1, 3])
    set([4, 5, 6])
     
    set([1, 3, 4, 5, 6])
    setを利用して、私は差集を行うことができることを意識して、それをこの問題に応用して、これは本当に役に立ち、私が必ず知ってほしい機能の一つです.