목록전체 글 (140)
배고픈 개발자 이야기
프로젝트 구조 예제 클래스의 관계도 입니다. MyClass.h 파일에는 Myclass클래스의 선언(prototype)이 있습니다. MyClass.cpp 파일에는 클래스의 멤버함수에 대한 정의가 있습니다. main.cpp에 Myclass 의 선언과 정이가 모두 들어가도 상관없습니다. 하지만 사용하는 클래스가 많아질 수록 main내부는 클래스의 선언과 정의로 복잡해질 것입니다. 그래서 위와 같이 각 클래스를 모듈화하여 분리하여 코드를 작성합니다. 모듈화 프로그램의 기본입니다. main.cpp에서는 늘 그래왔던 것 처럼 main 함수 윗부분에 클래스에 대한 정의가 있으면 됩니다. 그래서 MyClass.h 파일을 include(인클루드) 하면 됩니다. 아주 간단한 소스를 구성해 보았습니다. 네임스페이스를 선언하..
문제 두 정수 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..
1.linked_list class Node: def __init__(self, data): self.data = data self.next = None class LinkedList: def __init__(self): dummy = Node("dummy") self.head = dummy self.tail = dummy self.current = None self.before = None self.num_of_data = 0 def append(self, data): new_node = Node(data) self.tail.next = new_node self.tail = new_node self.num_of_data += 1 def delete(self): pop_data = self.current..
1.heap 완전 이진 트리 : 노드가 위에서 아래로, 왼쪽에서 오른쪽으로 채워짐 heap : 완전 이진 트리를 기본으로한 자료구조형 O(log N) - min, max를 빠르게 찾기 위해 고안 child node value2: return 1 else: return 0 else: # self.min_max == 2 ==> 최대 힙 if value1 > value2: return -1 elif value1 < value2: return 1 else: return 0 def __init__(self, s_min_max = 'min'): self.dynamic_arr = [None, ] # one based index, 다른 언어는 가변배열을 사용한다. C++은 백터 사용, 효율 좋게 짜는 것이 중요(가변배..