목록알고리즘 문제 (44)
배고픈 개발자 이야기
A game for one player is played on a board consisting of N consecutive squares, numbered from 0 to N − 1. There is a number written on each square. A non-empty array A of N integers contains the numbers written on the squares. Moreover, some squares can be marked during the game. At the beginning of the game, there is a pebble on square number 0 and this is the only square on the board which is ..
전무로 승진한 라이언은 기분이 너무 좋아 프렌즈를 이끌고 특별 휴가를 가기로 했다. 내친김에 여행 계획까지 구상하던 라이언은 재미있는 게임을 생각해냈고 역시 전무로 승진할만한 인재라고 스스로에게 감탄했다. 라이언이 구상한(그리고 아마도 라이언만 즐거울만한) 게임은, 카카오 프렌즈를 두 팀으로 나누고, 각 팀이 같은 곳을 다른 순서로 방문하도록 해서 먼저 순회를 마친 팀이 승리하는 것이다. 그냥 지도를 주고 게임을 시작하면 재미가 덜해지므로, 라이언은 방문할 곳의 2차원 좌표 값을 구하고 각 장소를 이진트리의 노드가 되도록 구성한 후, 순회 방법을 힌트로 주어 각 팀이 스스로 경로를 찾도록 할 계획이다. 라이언은 아래와 같은 특별한 규칙으로 트리 노드들을 구성한다. 트리를 구성하는 모든 노드의 x, y 좌..
A DNA sequence can be represented as a string consisting of the letters A, C, G and T, which correspond to the types of successive nucleotides in the sequence. Each nucleotide has an impact factor, which is an integer. Nucleotides of types A, C, G and T have impact factors of 1, 2, 3 and 4, respectively. You are going to answer several queries of the form: What is the minimal impact factor of nu..
문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 > a >> b; if (a 9) return -1; cout
문제 - 큐를 구현하고 명령어에 맞게 출력하는 문제 push X : 정수 X를 큐에 삽입 pop : 큐의 앞에 있는 정수를 없애고, 그 수를 출력합니다. 없는 경우 -1 출력 size : 큐에 들어있는 원소의 개수 출력 empty : 큐가 비어있으면 1, 그렇지 않으면 0을 출력 front : 큐의 가장 앞에있는 원소 출력, 원소가 없는 경우에는 -1 출력 back : 큐의 가장 뒤에있는 원소 출력, 원소가 없는 경우에는 -1 출력 첫째 줄에는 N (1
문제 - 정수를 저장하는 스택을 구현하는 문제 push N : 정수 N을 스택에 넣습니다. pop : 스택의 맨 위의 정수를 빼고, 출력. 없는경우 -1 출력 size : 스택의 정수의 개수 출력 empty : 스택이 비어있으면 1, 아니면 0 출력 top : 스택의 가장 위의 정수를 출력, 없는경우 -1 출력 import sys from sys import stdin,stdout sys.setrecursionlimit(1500) class Stack(list): push = list.append def is_empty(self): if not self: return True else: return False def peek(self): return self[-1] def show(self): data ..
한줄씩 읽어 푸는 문제 끝은 ***로 구분 import sys from sys import stdin,stdout sys.setrecursionlimit(1500) class Stack(list): push = list.append def is_empty(self): if not self: return True else: return False def peek(self): return self[-1] def show(self): data = str() while self: data += self.pop() stdout.write(data + "\n") if __name__=="__main__": s = Stack() data = list() while True: data = stdin.readline(8..
문제 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 M(≤ N)이 주어진다. 이제 순서대로 M번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, M)-조세퍼스 순열이라고 한다. 예를 들어 (7, 3)-조세퍼스 순열은 이다. N과 M이 주어지면 (N,M)-조세퍼스 순열을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 M이 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ M ≤ N ≤ 1,000) import sys from sys import stdin sys.setrecursionlimit(1500) n = stdin.readlin..