전체 글 68

백준 4949 균형잡힌 세상

https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다 www.acmicpc.net #include #include #include using namespace std; int main() { while (true) { string str; getline(cin, str); stacka; if (str[0] == '.') break; for (int i = 0; i < str.length() - 1; i++) { if (str[i] == '(') { a.pu..

코딩/문제 2022.06.28

백준 9012 괄호

https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net #include #include using namespace std; int main() { int input; cin >> input; stack s; for (int i = 0; i > str; int check = 0; int count[2] = { 0 }; for (int i = 0; i < str.s..

코딩/문제 2022.06.28

백준 10773 제로

https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net #include #include using namespace std; int main() { int input; cin >> input; stack s; for (int i = 0; i > num; if (num == 0) { if (s.empty() != true) { s.pop(); } } else { s...

코딩/문제 2022.06.28

백준 10828 스택

https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net #include #include using namespace std; #define sin(a) if(str == a) int main() { int input; cin >> input; stack s; for (int i = 0; i > str; sin("push") { int num; cin >> num; s.push..

코딩/문제 2022.06.28

[자료구조] 연결 리스트

STL상에서 std::forward_list, std::list로 구현되어 있다. 선형리스트와 다르게 임의접근이 불가능하다. 읽기 연결리스트는 임의 접근이 불가능해 요소 하나하나를 탐색해야 되므로 읽는 시간이 오래걸린다. 검색 읽기와 마찬가지로 원소를 하나하나 비교하기에 시간이 걸린다. 선형 리스트와 다르게 이진 검색도 불가능 삽입 원소의 삽입 위치에 따라 시간이 달라진다. 앞이나 뒤에서 가까우면 짫고 중간이면 해당 위치까지 검색해야한다. 삭제 삽입과 마찬가지로 삭제 위치에 따라 시간이 달라진다. 이유역시 삽입과 똑같이 앞이나 뒤에서 가까우면 짫고 둥간이면 해당 위치까지 검색해서 길어진다. std::forward_list std::forward_list는 다음 원소로 만 이동할 수 있는 단일 연결 리스트..

코딩/자료구조 2022.06.20

코딩 시험 8번 class화

https://fite9.tistory.com/20?category=1027019 코딩 시험 1. 포인터와 레퍼런스를 활용해 함수 외부에서 선언된 두 정수형 변수의 값을 서로 바꾸는 Swap 함수를 각각 구현하시오 void Swap(int* a, int* b)//포인터 { int c = *a; *a = *b; *b = c; } void Swap(int& a,.. fite9.tistory.com 8번 문제 달팽이 만들기 #include #include #include "Snail.h" using namespace std; class Snail { public: static void ArrayMake(int in) { N = in; int count = 1; int UP = 0; //올라가는 숫자 int D..

코딩/문제 2022.06.20

코딩 시험 7번 class화

https://fite9.tistory.com/20?category=1027019 코딩 시험 1. 포인터와 레퍼런스를 활용해 함수 외부에서 선언된 두 정수형 변수의 값을 서로 바꾸는 Swap 함수를 각각 구현하시오 void Swap(int* a, int* b)//포인터 { int c = *a; *a = *b; *b = c; } void Swap(int& a,.. fite9.tistory.com 7번 문제 빙고 만들기 #define size 5 class Bingo { public: void Init() { clear = 0; for (int i = 0; i < size + size + 2; i++) { check[i] = false; } for (int i = 0; i < size * size; i++)..

코딩/문제 2022.06.16

코딩 시험 6번 class화

https://fite9.tistory.com/20?category=1027019 코딩 시험 1. 포인터와 레퍼런스를 활용해 함수 외부에서 선언된 두 정수형 변수의 값을 서로 바꾸는 Swap 함수를 각각 구현하시오 void Swap(int* a, int* b)//포인터 { int c = *a; *a = *b; *b = c; } void Swap(int& a,.. fite9.tistory.com 6번 문제 카드 배분하기 Card.h class Deck { static bool usecard[53]; static const std::string mark[4]; static const std::string num[13]; public: bool pick() { int count = 0; for (int i =..

코딩/문제 2022.06.16

[C++] 동적 배열 만들기

동적 배열을 만드는 방법은 malloc을 쓰는 방법과 포인터를 쓰는 방법 두가지가 있다. 여기서 두 방법을 사용해 동적배열을 만드는 방법과 각각 데이터를 해제하는 방법을 살펴보자. 주의점 : 데이터를 해제하지 않으면 데이터 누수가 발생한다. C++ 동적 배열 생성 방법 1. 포인터를 사용한 방법 int A;//A를 만듬 cin >> A;// 정수 A를 입력받음 int* B = new int[A]; //B[A] 의 배열이 생김 delete[] B;// 동적 배열 B[A]를 해제 포인터 B 에 새로운 int [A]를 생성해줘서 배열을 만들었다. 방법 2. malloc을 사용한 방법 int A; cin >> A;// 정수 A를 입력받음 int* B = (int*)malloc(sizeof(int) * A);//..

코딩/C++ 2022.06.15

코딩 시험

1. 포인터와 레퍼런스를 활용해 함수 외부에서 선언된 두 정수형 변수의 값을 서로 바꾸는 Swap 함수를 각각 구현하시오 void Swap(int* a, int* b)//포인터 { int c = *a; *a = *b; *b = c; } void Swap(int& a, int& b)//래퍼런스 { int c = a; a = b; b = c; } 2. 1000미만의 3의 승수를 차례대로 출력하는 코드를 구현 하시오. #include int main(void) { int a = 3; while (a < 1000) // while문 { std::cout

코딩/문제 2022.06.15