티스토리 뷰
programmers.co.kr/learn/courses/30/lessons/42628
코딩테스트 연습 - 이중우선순위큐
programmers.co.kr
문제는 다음과 같다.
1.문자열이 "I (숫자)" 면 숫자를 리스트에 추가하고
2. "D 1" 이면 최댓값 삭제, "D -1" 이면 최솟값 삭제를 한다.
3. 최종적으로 리스트의 최댓값, 최솟값을 return 해주면 완성 (값이 없을시 [0, 0])
그렇게 완성한 코드. 옆에 주석을 달아놓아서 코드를 설명했다.
문자열 찾기 find()를 이용했는데 간단하게 설명하자면 이렇다.
test = "1234asdf7890"
test.find("1") #찾은 문자열의 index를 return 해준다
>>>> 0
test.find("3")
>>>> 2
test.find("x") #문자열을 찾지 못했으면 -1이 리턴된다
>>>> -1
그래서 나는 find("I")를 사용하여 문자열 I를 찾는데, -1이 아니면 해당 문자열이 있다는것을 이용했다.
sort()를 이용하여 오름차순 정렬을 해야하는데, 문자열을 그대로 쓸 경우 대소구분이 안된다. 따라서 int형으로 바꿔주었다.
pop을 이용하여 최댓값, 최솟값을 지워주는 식으로 간단히 해결했다.
level3인데 문제가 명확하고 시간복잡도의 차이가 크지않아서 굉장히 쉽게 풀었다.
오히려 heapq 의 존재를 몰랐던 상태에서 level1 더맵게 문제를 어떻게든 시간복잡도를 줄여보려고 노력했던게 더 공부가 많이됐던 것 같다.
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Java수료
- 입문
- 코드잇 강의
- Vue.js 프로젝트 투입 일주일 전
- Vue.js
- MySQL 문제
- 파이썬
- JavaScript
- bootstrap5
- 데이터 사이언스 프로그래밍 파이썬
- 프로그래머스
- dict 연속성
- 프로그래머스 코딩테스트
- vue.js 개념
- Python
- Vue.js 입문
- heap max
- javascript 객체배열
- 배열 특정객체 제거
- 윈도우 chmod
- 배열 특정요소 제거
- 다리위를지나는트럭
- vue.js 특징
- chmod 400
- 코딩테스트
- 부트스트랩 커스텀
- vue bootstrap scss
- Vue.js강의
- Vue.js 책
- windows10 chmod 400
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함