알고리즘

    [Level1] 체육복

    링크 : programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr def solution(n, lost, reserve): reserve1 = list(set(reserve)-set(lost)) lost1 = list(set(lost)-set(reserve)) answer = n - len(lost1) for i in range(len(reserve1)): if reserve1[i]-1 in lost1: answer += 1 lost..

    [Level1] 두 개 뽑아서 더하기

    링크 : programmers.co.kr/learn/courses/30/lessons/68644 내 풀이 def solution(numbers): result = [] for i in range(len(numbers)): for j in range(1, len(numbers)): if(i == j): continue a = numbers[i] + numbers[j] if a not in result: result.append(a) result.sort() return result 다른 인덱스의 두 개의 수를 뽑아야해서 이중 for문을 사용하였고 더한 값이 중복되는 경우가 없어서 not in을 사용하였다. 후에 출력해보니 numbers[3] + numbers[3] 이렇게 인덱스가 겹치는 경우가 있었다. 문..

    [Level1] 크레인 인형뽑기 게임

    programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr def solution(board, moves): a = [] result = 0 b = 0 for move in moves: for i in range(len(board)): if board[i][move-1] > 0: a.append(board[i][move-1]) board[i][move-1] = 0 b += 1 if b == 1: break elif a[b - 1] == a[b - 2]: res..

    [Level1]완주하지 못한 선수

    programmers.co.kr/learn/courses/30/lessons/42576 1. participant = ["mislav", "stanko", "mislav", "ana"] completion = ["stanko", "ana", "mislav"] def solution(participant, completion): for i in participant: if i not in completion: print(i) return i else: completion.remove(i) 답은 맞지만 효율성테스트에서 시간초과 떠버림 리스트 삭제는 n이란다.. 2. import collections def solution(participant, completion): answer=collections.Cou..

    [Level1]K번째 수

    def solution(array, commands): answer = [] a=0 for i in range(len(commands)): a = (array[commands[i][0]-1:commands[i][1]]) a.sort() answer.append(a[commands[i][2]-1]) return answer map과 lambda 함수 사용하면 단 두줄로 가능 ㅠ_ㅠ commands [[2, 5, 3], [4, 4, 1], [1, 7, 3]] 라서 또는 for i, j, k in commands 로 하면 i j k 에 2, 5, 3 한번에 받을 수 있다...... !!!!!!!

    [Level1] 2016년

    import datetime def solution(a, b): t = ['MON' ,'TUE' ,'WED' , 'THU', 'FRI', 'SAT', 'SUN'] return t[datetime.date(2016, a, b).weekday()]