목록코딩 테스트/백준 문제 풀이 (105)
공부 기록장
문제 설명 1번부터 N번까지 N명의 사람이 원을 이루어 앉아있고, 양의 정수 K가 주어진다. 순서대로 K번째 사람을 제거하고, 한사람이 제거되면 남은 사람들고 이루어진 원을 따라 이 과정을 계속해나간다. 입력 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) 7 3 출력 요세푸스 순열을 출력한다. 코드 n, k = map(int, input().split()) li =[i+1 for i in range(n)] # [1,2,3,4,5,6,7] idx = k-1 answer = [] while li: answer.append(li[idx]) del li[idx] idx += (k-1) if len(li) == 0: break idx %= len(li) print("") ..
문제 설명 정수를 저장하는 덱을 구현하고 입력으로 주어지는 명령을 처리하는 프로그램 작성하기 명령은 총 8가지 push_front X : 정수 X를 덱의 앞에 넣기 push_back X : 정수 X를 덱의 뒤에 넣기 pop_front : 덱의 가장 앞에 있는 수를 빼고 출력, 덱에 정수 없으면 -1 출력 pop_back : 덱의 가장 뒤에 있는 수를 빼고 출력, 덱에 정수 없으면 -1 출력 size : 덱에 들어있는 정수의 개수를 출력 empty : 덱이 비어있으면 1, 아니면 0 front : 덱의 가장 앞에 있는 정수 출력, 덱에 정수 없으면 -1 출력 back : 덱의 가장 뒤에 있는 정수 출력, 덱에 정수 없으면 -1 출력 입력 첫째 줄에 명령의 수 N이 주어진다. 둘째 줄부터 명령이 하나씩 주어..
문제 설명 0을 외칠 경우 가장 최근에 쓴 수가 지워진다. 지워진 수를 제외한 모든 수를 받아 적은 후, 그 수의 합을 구해보자. 입력 첫 번째 줄에 정수 K가 주어진다. 이후 K개의 줄에 정수가 하나씩 주어지고, 정수는 0에서 1,000,000사이의 값을 가지며, 정수가 0인 경우에는 최근에 쓴 수를 지우고, 아닐 경우에 해당 수를 쓴다. (정수가 0인 경우 지울 수 있는 수가 있음을 보장한다.) 출력 최종적으로 적어낸 수의 합을 출력 N = int(input()) num = [] for i in range(N): x = int(input()) if x == 0: num.pop() else: num.append(x) print(sum(num)) 시간 제한이 1초인데, 입력으로 주어지는 N은 100,00..
문제 설명 정수를 저장하는 스택을 구현하고, 입력으로 주어지는 명령을 처리하는 프로그램 명령은 총 다섯 가지 push x : 정수 x를 스택에 넣는 연산 pop : 스택 가장 위의 정수를 빼고 출력, 스택에 정수가 없는 경우 -1 size : 스택에 들어있는 정수의 개수 출력 empty : 스택이 비어있으면 1, 아니면 0 출력 top : 스택 가장 위에 있는 정수를 출력, 스택에 정수가 없는 경우 -1 입력 명령의 수 N(1 ~ 10,000)과 N개 줄에 명령어 입력 출력 출력해야 하는 명령이 주어질 때마다, 한 줄에 하나씩 출력 코드 # N = int(input()) import sys input = sys.stdin.readline N = int(input()) stack = [] for i in ..