본문 바로가기

알고리즘

데일리 알고리즘 230117

728x90

데일리 알고리즘 230117


프로그래머스, 푸드 파이트 대회

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

📄 나의 코드1

def solution(food):
    answer = ''
    for i in range(0,len(food)):
        for j in range(food[i]//2):
            answer += str(i)
    answer += "0"
    for i in range(len(food)-1,0,-1):
        for j in range(food[i]//2):
            answer += str(i)
    return answer
    
print("result : ", solution([1, 3, 4, 6]))
print("result : ", solution([1, 7, 1, 2]))

def solution(food):
    answer = ''
    for i in range(0,len(food)):
        for j in range(food[i]//2):
            answer += str(i)
    rev = answer[::-1]
    answer += "0"
    answer += rev
    return answer

반복되는 코드가 있어 이를 해결하고자 list를 reverse하는걸 생각하게 됨.


 

📄 나의 코드2

큐 이용

def solution(food):
    queue = [0]
    for i in range(len(food)-1,0,-1):
        for j in range(food[i]//2):
            if(food[i]//2!=0):
                queue.insert(0, i)
                queue.append(i)
    result = ""
    for e in queue:
        result += str(e)
    return result

문제를 보자마자 큐 자료구조를 이용하면 될 것 같다고 생각!

하지만 list로도 풀릴것같아 list 사용해 풀어보고 queue도 사용해 봤다.

'알고리즘' 카테고리의 다른 글

데일리 알고리즘 230118  (0) 2023.01.18
DP, Dynaminc Programming  (0) 2023.01.17
데일리 알고리즘 230116  (0) 2023.01.16
데일리 알고리즘 230113  (0) 2023.01.13
자료구조 4주차 _ DFS & BFS  (0) 2023.01.12