ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [🦩 프로그래머스] 오픈채팅방 / 나누어 떨어지는 숫자배열 / 같은 숫자는 싫어 / 체육복
    Algorithm/케로베로스 2020. 12. 14. 09:34
    반응형

    프로그래머스 풀이


    Q. 오픈채팅방

    def solution(record):
        id_dict = {} # id와 닉네임 저장 dict
        
        # 아이디: 닉네임 형태로 저장한다. 최종적으로는 바뀐 닉네임이 저장되어 있음.
        for r in record:
            a = list(r.split())
            if len(a) == 3:
                id_dict[a[1]] = a[2]
        
        # a[1]은 아이디 값 저장, enter/leave에 따라 문장 저장
        result = []
        for r in record:
            a = list(r.split())
            if a[0] == 'Enter':
                result.append(id_dict[a[1]]+'님이 들어왔습니다.')
            elif a[0] == 'Leave':
                result.append(id_dict[a[1]]+'님이 나갔습니다.')
        
        return result

     

    Q. 나누어 떨어지는 숫자 배열

    def solution(arr, divisor):
        return sorted([i for i in arr if i%divisor == 0]) or [-1]

     

    Q. 같은 숫자는 싫어

    def solution(arr):
        answer = [arr[0]]
    
        for i in range(1, len(arr)):
            if arr[i] != arr[i-1]:
                answer.append(arr[i])
    
        return answer

     

    Q. 체육복

    import copy
    def solution(n, l, reserve):
        lost = copy.deepcopy(l) # 단순복사로 하니까 l도 같이 변함 ㅠㅜㅜ
        
        #reseve인데 도난 당한 애들 처리
        for i, v in enumerate(l):
            if v in reserve:
                reserve.remove(v)
                lost.remove(v)
    
        while reserve:
            r = reserve.pop(0)
            if r-1 in lost:
                lost.remove(r-1)
            elif r+1 in lost:
                lost.remove(r+1)
    
        return n-len(lost)
    def solution(n, lost, reserve):
        _reserve = [r for r in reserve if r not in lost]
        _lost = [l for l in lost if l not in reserve]
        for r in _reserve:
            f = r - 1
            b = r + 1
            if f in _lost:
                _lost.remove(f)
            elif b in _lost:
                _lost.remove(b)
        return n - len(_lost)
    반응형

    'Algorithm > 케로베로스' 카테고리의 다른 글

    [🐉 백준 11단계] 브루트 포스  (0) 2020.12.21
    [🐉 백준 10단계] 재귀  (0) 2020.12.21
    [🐉 백준 9단계] 수학 2  (0) 2020.12.13
    [🐉 백준 8단계] 수학 1  (2) 2020.12.13
    [🐉 백준 7단계] 문자열  (0) 2020.12.12

    댓글

Designed by Tistory.