분류 전체보기

coding_test/BAEKJOON

백준 4949번 C++ 풀이

https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 시간 제한 메모리 제한 solved.ac 티어 1초 128MB 실버 4 문제 세계는 균형이 잘 잡혀있어야 한다. 양과 음, 빛과 어둠 그리고 왼쪽 괄호와 오른쪽 괄호처럼 말이다. 정민이의 임무는 어떤 문자열이 주어졌을 때, 괄호들의 균형이 잘 맞춰져 있는지 판단하는 프로그램을 짜는 것이다. 문자열에 포함되는 괄호는 소괄호("()") 와 대괄호("[]")로 2종류이고, 문자열이 균형을..

Data Structure

[C] 동적 할당을 이용한 스택(Stack) 구현

스택이란, 데이터가 들어가는 부분과 나오는 부분이 같아, LIFO(Last in, First out), 후입선출구조를 이루는 제한적인 접근이 가능한 선형 자료구조이다. 쉽게 말해, 책을 쌓아올리면, 보통은 제일 마지막에 쌓은 책부터 꺼내는 모양과 같다고 말할 수 있겠다. 그러면 스택을 구현해보자. 이번에 스택이 동작시키기 위해 구현할 함수는 총 7가지로, 다음과 같다. 스택을 초기화할 init_stack 데이터를 추가할 push 제일 마지막 데이터를 제거할 pop 데이터가 얼마나 담겨있는지 알아낼 size 스택이 비었는지 체크할 empty 제일 마지막 데이터를 반환할 top 얼마나 할당받았는지 반환할 capacity 먼저 스택 구조체를 먼저 선언해보자. 얼마나 많은 데이터가 들어올지 모르기 때문에 포인터..

Data Structure

자료구조란?

앞서 연결리스트를 구현하긴 했지만, 자료구조가 뭔지 정리하지도 않고 일단 구현한거 같아 매우 찜찜했다. 그래서 이번에는 다른 자료구조를 공부하고, 구현하기에 앞서 자료구조가 뭔지부터 공부하고 넘어가보자 한다. 이 글은 여러 블로그와 설명을 보며 공부한 것을 정리한 노트이다. 자료구조란? 자료구조(data structure)의 사전적 정의는 컴퓨터 과학에서 데이터의 효율적인 접근 및 수정을 가능케 하는 자료의 집합을 의미한다. 더 자세히 말하자면, 데이터 간의 논리적으로 정의된 규칙에 의해 구조화되어있으며, 자료에 대한 효율적인 처리를 수행하도록 조직적, 체계적으로 구분한 것을 의미한다. 왜 사용하는가? 사실 이 질문은 이미 자료구조의 정의에서 이미 나와있다. 데이터를 효율적으로 다루기 위해서이다. 예를 ..

coding_test/BAEKJOON

백준 9659번 C++ 풀이

https://www.acmicpc.net/problem/9659 9659번: 돌 게임 5 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1,000,000,000,000) www.acmicpc.net 시간 제한 메모리 제한 solved.ac 티어 1초 128MB 실버 2 문제 돌 게임은 두 명이서 즐기는 재밌는 게임이다. 탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 이기게 된다. 두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다. 입력 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1,000,000,000,000) 출력 상근이가 게임을 이기..

coding_test/BAEKJOON

백준 1874번 C++ 풀이

https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 시간 제한 메모리 제한 solved.ac 티어 2초 128MB 실버 3 문제 스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, L..

coding_test/BAEKJOON

백준 20364번 C++ 풀이

https://www.acmicpc.net/problem/20364 20364번: 부동산 다툼 첫 번째 줄에 땅 개수 N과 꽉꽉나라에 사는 오리 수 Q가 공백으로 구분되어 주어진다. (2 ≤ N n >> q; bool* land_tree = new bool[n + 1]; // true: 차지됨, false: 비어있음 while(q--) { cin >> num; ans = 0; temp = num; while(temp) { if (land_tree[temp]) ans = temp; temp >>= 1; } if (!ans) land_tree[num] = true; cout

coding_test/BAEKJOON

백준 5597번 C++ 풀이

https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 시간 제한 메모리 제한 solved.ac 티어 1초 128MB 브론즈 2 문제 X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, 그 중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하시오. 입력 입력은 총 28줄로 각 제출자(..

coding_test/programmers

lv1 / 최대공약수와 최소공배수 / C++

https://programmers.co.kr/learn/courses/30/lessons/12940 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 제한 사항 ..

CodeJin
'분류 전체보기' 카테고리의 글 목록 (13 Page)