목록구현 (104)
기록방
👉 문제링크 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 🔸 문제 분석 🔸 입력받은 숫자들의 산술평균, 중앙값, 최빈값, 범위를 출력한다. 🔸 코드 🔸 import sys from collections import Counter input = sys.stdin.readline print = sys.stdout.write N = int(input()) arr = [] for i in range(N): arr.append(int(input())) arr.sort() print(str(round(sum(arr)/N)) + "..
👉 문제링크 2161번: 카드1 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 🔸 문제 분석 🔸 큐를 구현해서 원소가 1개가 남을때까지 반복하는 문제이다. 🔸 코드 🔸 from collections import deque N = int(input()) que = deque(range(1,N+1)) while len(que) != 1: print(que.popleft(),end=" ") # que.append(que.popleft()) que.rotate(-1) print(que.pop()) 🔸 코드 해석 🔸 데크를 이용해서 구..
👉 문제링크 12873번: 기념품 백준이는 BOJ 알고리즘 캠프 참가자 중 한 명에게 기념품을 주려고 한다. 하지만, 많은 참가자 중에서 어떤 사람을 뽑아서 기념품을 줘야하는지 고민이 되기 시작했다. 따라서, 백준이는 게임을 www.acmicpc.net 🔸 문제 분석 🔸 1~N원소 중 1, 2, 3...의 3제곱 번째 원소를 제거하며 1개가 남을때까지 반복하는 문제이다. 🔸 코드 🔸 from collections import deque import math N = int(input()) t = 0 member = deque(range(1,N+1)) while len(member) != 1: t += 1 member.rotate(-((int(math.pow(t,3))%len(member))-1)) memb..
👉 문제링크 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net 🔸 문제 분석 🔸 보는 방향에서 봤을때 보이는 블럭의 수를 출력한다. 스택을 사용해서 가려지는 블록을 제거하면 되는 문제이다. 🔸 코드 🔸 import sys input = sys.stdin.readline N = int(input()) arr = [0] for i in range(N): h = int(input()) while True: if len(arr) == 0: arr.append(h) break elif arr[-1]
👉 문제링크 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 🔸 문제 분석 🔸 숫자를 입력받다가 0이 입력되면 최근 값을 제외한다. 입력받은 숫자의 총 합을 출력한다. 🔸 코드 🔸 import sys from collections import deque input = sys.stdin.readline K = int(input().strip()) d = deque() for i in range(K): n = int(input().strip()) if n == 0: d.pop() ..