Computer Science


이번 문제는 트리를 연습하기 위해 가져온 문제이다. 하지만.. 풀다보니 트리가 아니라 그래프 형식으로 만들어야한다는 걸 깨달은 문제이기도 하다. 문제 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다. 출력 첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다. 예제 입력 1 7 1 6 6 3 3 5 4 1 2 4 4 7 예제 출력 1 4 6 1 3 1 4 예제 입력 2 12 1 2 1 3 2 4 3 5 3 6 4 7 4 8 5 9 5 10 6 11 6 12..


스택과 큐를 동시에 사용할 수 있는 자유로운 자료구조인 덱을 이용해 기본 문제를 풀어보았다. 문제 정수를 저장하는 덱(Deque)를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여덟 가지이다. push_front X: 정수 X를 덱의 앞에 넣는다. push_back X: 정수 X를 덱의 뒤에 넣는다. pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. pop_back: 덱의 가장 뒤에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 덱에 들어있는 정수의 개수를 출력한다. empty: 덱이 비어있으면 1을, 아니면 0을 출력한다..


이번에는 큐 기본문제를 풀어보았다. 문제 정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여섯 가지이다. push X: 정수 X를 큐에 넣는 연산이다. pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 큐에 들어있는 정수의 개수를 출력한다. empty: 큐가 비어있으면 1, 아니면 0을 출력한다. front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. 입력 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ..


이제 슬슬 C++ 언어 적응도 된것 같아서 간단한 자료구조 문제들을 풀어보려고 한다. 8월 내로 C++을 이용해 스택, 큐, 연결리스트, 덱, 우선순위 큐, 트리, 그래프 기본문제들을 풀어보려고 한다. 오늘은 그 첫번째 스택 기본문제이다. C언어로 구현하다가 C++ 사용하니까 너무 편하고 좋은 것 같다. 아직 C++ 문자열 사용이 미숙해서 문제 난이도에 비해서는 오래 푼 것 같다(30분 정도) 문제 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: ..

KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다. 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다. 그러면 인공지능 오븐은 오븐구이가 끝나는 시간을 분 단위로 자동적으로 계산한다. 또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시각을 알려 주는 디지털 시계가 있다. 훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오. 입력 첫째 줄에는 현재 시각이 나온다. 현재 시각은 시 A (0 ≤ A ≤ 23) 와 분 B (0 ≤ B ≤ 59)가 정수로 빈칸을 사이에 두고 순서대로 주어진다. ..

아래 예제와 같이 새싹을 출력하시오. ,r'"7 r`-_ ,' ,/ \. ". L_r' `~\/ | | 이 문제는 간단히 출력하는 거지만 기초가 없다면 헷갈릴 수 있다. 따옴표나 작은따옴표 \ 와 같은 특수 문자들은 \" 와 같은 방식으로 사용해야한다. 이것도 그리 설명할 것은 없으니 코드만 남긴다. 뭔가 한줄에 할 수 있는 방법이 있는 것 같은데 잘 모르겠다! 나중에 알게되면 업데이트 해야지~ #include using namespace std; int main() { cout

ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국은 불멸기원(佛滅紀元), 즉 석가모니가 열반한 해를 기준으로 연도를 세는 불기를 사용한다. 반면, 우리나라는 서기 연도를 사용하고 있다. 불기 연도가 주어질 때 이를 서기 연도로 바꿔 주는 프로그램을 작성하시오. 이 문제도 가벼운 입력 후 연산을 통해 답을 도출하는 것이다. 간단한 문제이니 이번에도 설명은 패스~ #include using namespace std; int main() { int year; cin >> year; cout

준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때, 놀람을 표현하는 프로그램을 작성하시오. 입력을 연습해 볼 수 있는 문제이다. C++에서 출력은cout > "입력자료" 로 사용한다. 저 화살표가 자료의 흐름을 표시하는 거라고 생각하면 조금 쉬운 느낌이다. (진짜 이런건지는 모르겠지만...) 문제가 간단하니 이것도 그냥 가뿐히 통과했다. #include using namespace std; int main() { char id[100]; cin >> id; cout

이때까지 다양한 문제를 C로 풀었는데 이제부터 C++을 사용하고자 합니다. C++을 처음 사용하는거라 난이도 있는 문제를 푸는 것보다 익숙해질때까지는 간단한 문제 위주로 풀어보려고 합니다! 우선 새로운 언어를 만나면 첫번째로 푸는 문제가 바로 이 Hello World 아닐까 싶습니다. 너무 간단한 문제이니 따로 설명은 하지 않겠습니다. #include using namespace std; int main() { cout


https://mobuk.tistory.com/21 [자료구조] C - 스택(Stack) 오늘은 컴퓨터에서 정말 많이 사용되는 자료구조인 스택에 대해 알아 볼 것이다. 스택(Stack) 스택을 사전에서 찾아보면 더미, 낟가리 를 의미한다고 되어 있다. 스택은 말 그대로 자료들이 더미 mobuk.tistory.com 지난시간에는 스택의 기본적인 개념에 대해 알아보았다. 이번 시간에는 스택을 '배열'로 구현하는 방법에 대해 알아보겠다. 총 3가지의 방법을 소개하고 있다. 첫번째는 전역변수로 구현하는 방법, 두 번째는 함수의 데이터로 매개변수를 전달하는 방법, 마지막은 동적으로 할당한 배열로 구현하는 방법이다. 전역변수로 구현하는 방법 이 방식은 스택으로 사용할 1차원 배열과 스택의 데이터 개수인 top 변수..