목록CodingTest (432)
기록방

👉 문제링크 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 🔸 문제 분석 🔸 스택의 pop, push 연산과 후입 선출 개념을 정확하게 알고 있는지 묻는 문제이다. 스택에 넣는 자연수 값은 오름 차순 정렬이다. 현재 수열 값 >= 자연수 자연수가 현재 수열 값과 같아질 때 까지 자연수를 1증가시키며 스택에 push한다. 마지막은 출력하기 위해 1번 pop한다. 현재 수열 값 < 자연수 pop해서 스택의 가장 위 값을 확인한다...

👉 문제링크 13301번: 타일 장식물 대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개 www.acmicpc.net 🔸 문제 분석 🔸 나선 모양으로 커져가는 타일을 n개 배치했을때 만들어진 직사각형의 둘레를 출력한다. 3번째 타일 부터는 피보나치 수열 방식으로 증가한다. 🔸 코드 🔸 n = int(input()) arr = [1, 1] if n == 1: answer = 4 elif n == 2: answer = 6 else: for i in range(n-2): arr.append(sum(arr[-2:])) answer = arr[-1]*2 + sum(arr[-2:..

👉 문제링크 2810번: 컵홀더 첫째 줄에 좌석의 수 N이 주어진다. (1 ≤ N ≤ 50) 둘째 줄에는 좌석의 정보가 주어진다. www.acmicpc.net 🔸 문제 분석 🔸 좌석 정보가 주어지면 컵 놓을 수 있는 사람의 최대값을 출력한다. 일반석과 커플석을 구분해 계산한다. 일반석은 왼쪽 컵홀더가 비었으면 무조건 왼쪽, 아니면 오른쪽에 놓는다. 따라서 무조건 컵을 배치할 수 있다. 커플석은 왼쪽과 오른쪽 구분이 필요하다. 커플석의 왼쪽 좌석은 왼쪽 컵홀더에 컵이 놓였는지 확인이 필요하다. 🔸 코드 🔸 n = int(input()) arr = list(input()) answer = 0 nextL = False left = True # 왼쪽 컵홀더 사용이 되는가 for i in arr[:-1]: if ..

👉 문제링크 4998번: 저금 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트는 한 줄로 이루어져 있고, N, B, M이 주어진다. M은 항상 N보다 크다. N과 M은 항상 백만보다 작거나 같은 수이고, 음수 또는 0이 아니다 www.acmicpc.net 🔸 문제 분석 🔸 입력이 끝날때까지 테스트 케이스를 입력받는다. 실수형 N, B, M 을 입력받는다. N이 몇 번 B%만큼 커져야 M을 넘는지 출력한다. 🔸 코드 🔸 import sys lines = sys.stdin.readlines() for line in lines: n, b, m = map(float,line.split()) count = 0 while n

👉 문제링크 11003번: 최솟값 찾기 N개의 수 A1, A2, ..., AN과 L이 주어진다. Di = Ai-L+1 ~ Ai 중의 최솟값이라고 할 때, D에 저장된 수를 출력하는 프로그램을 작성하시오. 이때, i ≤ 0 인 Ai는 무시하고 D를 구해야 한다. www.acmicpc.net 🔸 문제 분석 🔸 일정 범위 안에서 최소값을 구하는 문제이므로 슬라이딩 윈도우와 정렬을 사용해야 한다. 윈도우의 크기는 최소값을 구하는 범위가 i-L+1 ~ i 이므로 L로 생각한다. 일반적으로 정렬은 O(nlogn)인데 N,L 의 범위가 5,000,000까지 이므로 정렬은 사용하지 못한다. O(n)의 시간 복잡도로 해결해야되므로 윈도우를 덱(deque)로 구현하여 정렬 효과를 낸다. 덱은 (인덱스, 숫자) 형태의 노드..