입력받은 리스트를 돌면서 하나씩 스택에 ❕인덱스❕ 삽입스택의 최상위 원소와 리스트의 다음 원소 비교최상위 원소가 더 크면 다음 원소 인덱스를 스택에 넣기다음 원소가 더 크면 해당 값이 최상위 원소의 오큰수가 되므로 결과 출력 배열에 저장스택에 원소 존재하면서 최상위 원
파이썬 collections의 deque 사용하니까 너무 간단했다.deque에 넣은 후 하나는 빼고 하나는 맨 뒤에 넣기를 반복한다.마지막 원소 한 개가 남으면 반복을 종료한다.※ deque에 넣을 때 deque(list(i+1 for i in range(N)))도 좋
문제 링크 : 💡 해결 방법 파이썬 우선순위 큐를 사용하면 쉽게 해결되는 문제 절댓값이 작은 순서대로 출력하되, 절댓값이 같은 숫자가 있으면 음수 먼저 출력 이를 해결하기 위해 우선순위 큐에 정렬 기준을 새로 적용하여 사용 stack.put((abs(input),
버블 정렬 그대로 작성하면 시간초과 남\*\*<span style=color:마지막 정렬까지(=바깥 for문 반복), 작은 수들은 자꾸 앞으로 한 칸씩 이동 -> 이를 bool change로 보기sort() 이후 숫자별 인덱스 변화 확인하여 왼쪽으로 가장 많이 이
문제 링크 : 💡 해결 방법 📌 SelectionSort 알고리즘 ※ 코드 선택 정렬 시간복잡도 : O(n^2) 🖥️ 코드 PriorityQueue 사용 정석 ✏️ 알고리즘 분류 문자열 정렬
문제 링크 : 💡 해결 방법 📌 InsertionSort 알고리즘 현재 index에 있는 데이터 값 선택 선택한 데이터가 정렬 범위에서 삽입될 위치 탐색 삽입 위치부터 정렬 범위를 shift 삽입 위치에 선택한 데이터 삽입 모
문제 링크 : 💡 해결 방법 🖥️ 코드 ✏️ 알고리즘 분류 그리디 알고리즘 정렬
문제 링크 : 💡 해결 방법 앞에서부터 소요 시간이 짧은 사람 순으로 들어가야 인출 시간이 최소가 된다. 따라서 입력받은 소요 시간을 오름차순 정렬을 하여 문제를 해결한다. 인출 시간의 합을 구하기 위해 for문을 사용하였다. 📌 InsertionSort 알고리
visited 리스트는 N부터 시작해서 인덱스의 숫자에 도달했을 때의 count를 담고 있다.최상위 노드 N부터 시작해서 N-1, N+1, N\*2 세 개씩 각 노드별로 뻗어나가는 모양의 그래프를 하고 있다.예를 들어, 현재 위치가 5라면, 4,6,10의 위치에 모두
가운데 삼각형부터 한 변의 길이를 나열해보면 규칙을 찾을 수 있다.규칙은 직전 삼각형과 5번째 전의 삼각형 변의 길이 합이다.따라서 초기 5개의 변의 길이는 먼저 배열에 저장해두고, 이후의 인덱스에 맞게 arr\[i] = arr\[i-1] + arr\[i-5]를 해주면
set을 사용해서 중복제거하고, counter로 중복개수 확인한다. dict 사용해서 입력값을 key, 인덱스를 value로 저장한다. dict 사용 전에 sort를 하여 해당 인덱스가 value가 되면 출력 시 value만 출력하면 된다.정렬값 / 좌표 압축
좌표도 함수 매개변수에 넣어주기처음에는 배열을 매개변수로 넣어주고 white일 때와 blue일 때를 모두 고려해서 count 증가하는 방식으로 하려 했음그냥 체크하려는 정사각형의 가장 왼쪽 위 색이랑 모두 동일하면 되니까 왼쪽 위 칸을 기준으로 하여 이중 for문으로
인덱스와 배열에 원소가 제거됐을 때 뒤에 요소들 앞으로 한 칸씩 당겨지는 것 생각해서 point가 건너뛰는 범위를 k-1로 지정point가 len(circle)을 넘어가면 안되므로 중간에 while문으로 point 변경해줌제거할 요소의 인덱스에 도달하면 result에
문제 링크 : 문제넘길ㅇ.. 💡 해결 방법 처음엔 그냥 list써서 입력하고, for문으로 list에 있는 값 찾으면 되는 문제인줄 알고 너무 쉽다고 생각했다. 하지만 리스트에서 탐색을 할 경우 시간복잡도는 O(n)이다. 따라서 index를 탐색할 때, 데이터의
list의 del 기능이 해당 인덱스 삭제하면서 뒤의 인덱스가 한 칸씩 앞으로 당겨지는 동작이 시간을 많이 잡아먹는다는 사실을 간과했다.처음에는 두 번째 코드에 del 넣어서 작성했다가 시간초과 나고 첫 번째 코드로 수정하였다.입력 받으면서 stack에 push/pop