Stack 위 그림과 같이 같은 타입의 데이터를 정해진 방향으로만 쌓을 수 있고, top으로 정해진 곳을 통해서만 접근 가능한 자료 구조를 말합니다. top은 가장 최근에 들어온 데이터를 의미하며, 데이터를 추가하는 push 연산과 데이터를 제거하는 pop 연산이 있습니다. 따라서 스택은 후입선출(Last-In First-Out) 구조를 가집니다. 스택 활용 예제를 보면 다음과 같습니다. - 웹 브라우저 방문 기록(뒤로 가기) - 역순 문자열 만들기 - 실행 취소(undo) - 후위 표기법 계산 - 수식의 괄호 검사 1. Array(배열)을 사용하여 스택 구현 package study; public class StackByArray { private static final int MAX_STACK_NUM..
programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이 programmers.co.kr 문제는 위와 같으며 큐를 사용하여 문제를 풀 수 있습니다. 다리를 하나의 큐라고 생각하고 각 경우를 확인하며 트럭이 다리를 건널 수 있도록 하였습니다. 먼저 다리로 사용할 큐를 생성한 뒤, 트럭의 수만큼 반복을 진행합니다. 이는 모든 트럭이 다리 위로 올라갈 때까지 반복하는 것입니다. 이후 각 트럭에 대해서 아래와 같은 조건을 확인합니다. CASE 1. 다리가..
programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 문제는 위와 같으며 주어진 작업의 수만큼 for 문을 돌면서 작업을 완료하는데 걸리는 일 수를 구한 뒤 큐에 저장합니다. 이때 큐의 가장 앞에 있는 값과 현재 값을 비교해서 더 작은 경우에만 큐의 마지막에 값을 추가하고 현재 값이 더 큰 경우에는 큐에 있는 값을 모두 빼면서 개수를 세고 해당 개수를 결과 배열에 저장하면 문제를 해결할 수 있습니다. 파이썬 코드는 다음과..
문제는 위와 같고 (우선순위, 인덱스) 형태의 튜플을 리스트로 저장한 뒤, 앞에서부터 차례대로 꺼내서 우선순위가 최대인지 확인합니다. 우선 순위가 최대라면 먼저 출력 count 를 1 추가한 뒤, 원래 뽑으려고 한 인덱스가 맞는지 확인하여 맞다면 그대로 출력 count 를 프린트하고 종료합니다. 아니라면 그냥 pop(0) 합니다. 맨 앞에서 꺼낸 데이터의 우선순위가 최대가 아니라면 해당 데이터를 다시 리스트의 젤 마지막에 추가합니다. 파이썬 코드는 다음과 같습니다. from sys import stdin test_case = int(stdin.readline()) for _ in range(test_case): n, m = map(int, stdin.readline().split()) queue = li..
- Total
- Today
- Yesterday
- Algorithm
- BFS
- cloudfront
- CodeCommit
- 수학
- Combination
- CodePipeline
- AWS
- string
- spring
- 조합
- 순열
- search
- java
- CodeDeploy
- SWIFT
- programmers
- 소수
- 에라토스테네스의 체
- 프로그래머스
- Dynamic Programming
- sort
- array
- Baekjoon
- permutation
- map
- ionic
- DFS
- EC2
- ECR
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |