Algorithm/Data_structures

난이도: Lv.3유형: 힙해결 여부: 정답내가 생각했던 아이디어/큰 가닥힙이나 덱 써서 한다고 생각했다. 실제로 모범답안도 힙이었다.근데 파이썬에서 heapq 은 최소밖에 지원 안한다는걸 알고 걍 리스트로 통과되나 했는데 그냥 통과 되어버렸다.오답 이유틀린건 아니다. 다만 매번 정렬하는게 효율이 떨어져 나중에 타임오버에러가 날 수 있다.해답2단계인데, 우선 조금 개선된 방식은 최소힙 쓴다음에 최대 삭제하라고 하면 remove를 쓰고 heapify를 쓰는거다. heap에서도 remove를 지원한다. 대신 그러면 heapify()로 재정렬이 필요하다. 제일 좋은 방식은 최대힙, 최소힙 2개 다 쓴다. 그리고 넣을때는 최대힙에는 -붙여서 뒤집어서 넣는다. 그리고 넣을떄 (value,ID)를 쌍으로 넣는다. 그..
난이도: Lv.2유형: 스택/큐해결 여부: 해결아이디어처음에는 결국 같은 값들 중에서 몇번째로 정렬되는가?를 봐야하므로 크거나 작은거 다 재끼고 시작해야하나했다. 근데 그러면 index가 달라지며 그 직전 요소들도 직접 해보지 않으면 뭐가 먼저인지 알수 없다고 판단해 걍 일일히 하기로 했다. input으로 1~9 만 들어온다는걸 이용해서, 아예 pop 해버리면 index 지정한게 달라지니까 pop은 안하고 0으로 값을 바꿈.모범 답안은 any를 활용해서 리스트 하나라도 만족하는 값 있으면 하거나, 실제로 append pop 하면서 했다. 실행시간이 크게 차이나지는 않는다.오답 이유 혹은 알게 된것리스트 컴프리헨션 문법 주의!문법실수 i랑 val 바뀜, 리스트명 잘못씀, return 위치 인덴팅, 0이 아..
난이도: Lv.1유형: 스택해결 여부: 오답아이디어숫자를 문자열로 접근하며, 각 자리의 숫자를 세는 계수적 정렬 사용아이디어 자체는 정답오답 이유 및 알게 된것시간초과문자열의 반복 추가에 반복문 사용 -> * 문법으로 바꾸었지만 여전히 시간초과문자열에서 특정 문자의 개수 셀 때 for문으로 1회 순회하여 사용 -> count() 함수 사용이 결정적, count() 가 for문 1회독보다 훨씬 빠름엄청긴 문자열, 숫자열의 형변환은 그만큼 오래걸림. 그래서 모두 0인것을 검출해야 할때 len()=count() 문법 사용 필요했음.즉, 파이썬은 내장함수가 많은대신 이를 잘 이용해야만 한다. 시간차이가 엄청 크다.def solution(X, Y): answer = '' for i in range(9,..
걍판자
'Algorithm/Data_structures' 카테고리의 글 목록