강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

역수열 문제 관련 질문

작성

·

145

0

안녕하세요 강사님 역수열 문제를 풀다가 제 코드가 논리상에 오류가 있는지와 효율성에 대해 알고 싶어서 질문드립니다.

저는 이전 강의에서 강사님께서 알려주신 deque를 이용해서 문제를 풀었습니다. deque를 선언하고 큰 수부터 내림차순으로 위치 배치를 수행했습니다. 특정 숫자와 특정숫자보다 큰 수의  갯수는 인덱스로 deque의 insert 연산을 이용하였는데요 deque의 insert연산을 사용하는 알고리즘이 정적 크기 list를 선언하고 배치하는 알고리즘과 효율성이 얼마나 차이가 나는지 알고 싶습니다. 또 제 코드의 논리가 맞는지도 알고 싶습니다

import sys
from collections import deque

def solution(n, lst):
    dq = deque()
    for i in range(n, 0, -1):
        dq.insert(lst.pop(),i)
    return " ".join(list(map(str, dq)))


if __name__ == "__main__":
    sys.stdin = open("input9.txt", "r")
    n = int(input())
    lst = list(map(int, input().split()))
    answer = solution(n, lst)
    print(answer)

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

효율성의 큰 차이는 없어 보입니다.

맞는 논리입니다. 먼저 들어간 숫자들이 현재 i보다 모두 크다는 논리로 위코드처럼 푸는 경우도 많습니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기