[TIL 4일차] 데브코스 데이터엔지니어링

heering·2023년 4월 13일
0

오늘 내일은 예전에 프로그래머스 코딩테스트 연습에서 풀었던 문제들을 복습하는 날이다.

  • 완주하지 못한 선수
    -> 예전에 코딩테스트 실력 UP 패키지에서 다른 사람의 코드 중에 해시로 푼 정석 풀이를 봤었는데 강사님도 똑같이 설명하시더라 근데 난 리스트로 정렬해서 푸는게 편하다., ㅎ
def solution(participant, completion):
    participant.sort()
    completion.sort()
    
    for i in range(0, len(completion)):
        if participant[i] != completion[i]:
            return participant[i]
    
    return participant[-1]
  • 체육복
def solution(n, lost, reserve):
    answer = 0
    
    dress = []
    for i in range(0, n):
        dress.append(1)
        if ((i+1) in reserve):
            dress[i] += 1
        if ((i+1) in lost):
            dress[i] -= 1

    for j in range(0, n):
        if (dress[j] == 0):
            if ((j-1) > -1 and (dress[j-1] == 2)):
                dress[j-1] -= 1
                dress[j] += 1
            elif ((j+1) < len(dress) and (dress[j+1] == 2)):
                dress[j+1] -= 1
                dress[j] += 1
    
    answer += dress.count(1)
    answer += dress.count(2)
    
    return answer
  • 가장 큰 수
def solution(numbers):
    answer = ''

    ch = [str(x) for x in numbers]
    ch.sort(key = lambda x: x*3)
    ch.reverse()

    if ch[0] == '0':
        return '0'

    for c in ch:
        answer += c

    return answer
  • 큰 수 만들기
def solution(number, k):
    answer = ''
    
    number = [int(x) for x in number]
    
    stack = []
    
    for i in range(0, len(number)):
        c = number[i]
        while(len(stack) > 0 and k > 0 and stack[-1] < c):
            stack.pop(-1)
            k -= 1
        stack.append(c)
    
    while(k > 0):
        stack.pop(-1)
        k -= 1

    for num in stack:
        answer += str(num)
    
    return answer

0개의 댓글