본문 바로가기

PS36

백준 1181번 C++ 단어 정렬하기 특정 조건에 따라서 단어 정렬하기https://www.acmicpc.net/problem/1181 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.길이가 짧은 것부터길이가 같으면 사전 순으로 코드123456789101112131415161718192021222324252627282930313233343536373839404142#include #include #define swap(x, y, temp) ((temp)=(x), (x)=(y), (y)=(temp))using namespace std; int main() { int N, least; cin>>N; string arr[N], temp; for(int i=0; i>arr[i]; } for(i.. 2019. 4. 11.
백준 2581번 C++ 소수 판별하기 소수 판별하고 최솟값, 합 출력하기 https://www.acmicpc.net/problem/2581 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다. 코드 #include #include using namespace std; bool isPrime(int n) { if(n M >> N; int min = M; int sum = 0; while (M 2019. 2. 20.
백준 1026번 C++ 보물 정렬하지 않고 풀기옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다.길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자.S = A[0]*B[0] + ... + A[N-1]*B[N-1]S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안된다.S의 최솟값을 출력하는 프로그램을 작성하시오. 문제 링크 https://www.acmicpc.net/problem/1026 처음에는 도움만 받고 지금도 도움을 받고서 알고리즘 문제를 풀지만그래도 처음에 시작할 때보단 실력이 늘었겠지 생각이 들어 이전에 틀렸던 문제들을 풀고 있다.이 문제는 정답률 60%로 낮은 편이 아니지만 내 정답률은.. 2019. 2. 14.
백준 10866번 C++ 덱 구현 덱 구현하고 명령어에 따라 출력하기https://www.acmicpc.net/problem/10866 정수를 저장하는 덱(Deque)를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 여덟 가지이다.push_front X: 정수 X를 덱의 앞에 넣는다.push_back X: 정수 X를 덱의 뒤에 넣는다.pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.pop_back: 덱의 가장 뒤에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.size: 덱에 들어있는 정수의 개수를 출력한다.empty: 덱이 비어있으면 1을, 아니면 0을 출력한다.fron.. 2019. 2. 12.
C++ Queue(큐) 배열, 연결 리스트로 구현 Queue스택이 top에 쌓는 것이었다면 queue는 줄을 세우는 것이다.지하철역에서 줄을 서면 먼저 온 사람이 앞(front)쪽에 서고 나중에 온 사람은 그 사람 뒤(rear)에 선다.그리고 지하철에 탈 때는 먼저 온 사람이 먼저 들어간다.즉, front와 rear가 필요하다. 1. implementation using array12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667#include using namespace std;int queue[100];int n = 100, front = -1, rear = -1; void in.. 2019. 2. 12.
C++ Stack(스택) 연결 리스트로 구현 Stack스택의 기본은 top이다.말그대로 '쌓는' 자료 구조라고 보면 되는데 top(맨 위)에만 놓을 수 있는 것이다.따라서 top에 원소를 넣고, 추가로 원소를 넣고 싶으면 top을 하나 더 증가 시켜야 한다. implementation using Linked List12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879#include using namespace std; struct Node { int data; Node* next;}; Node* top = NULL; void push(i.. 2019. 2. 12.
C++ deque(데크) 이중 연결 리스트로 구현 deque (double queue)front, rear가 모두 있는 큐라고 생각하면 된다.큐를 일반화한 자료 구조로 처음, 끝 모두에서 삽입 및 삭제가 가능하며 스택과 큐의 장점을 지니고 있다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132.. 2019. 2. 12.
Linked List C++ 구조체 말고 클래스로 구현한 예제 Singly Linked List:https://www.codementor.io/codementorteam/a-comprehensive-guide-to-implementation-of-singly-linked-list-using-c_plus_plus-ondlm5azr Doubly Linked List:https://towardsdatascience.com/doubly-linked-list-why-what-and-how-59aba937abcf head와 tail 다루는 법만 알면 특정 위치의 노드는 포인터를 옮겨가는 방법으로 삽입 혹은 삭제할 수 있다.안드로이드 스튜디오에서 cursor가 포인터 같은 역할한다고 했는데 null 때문에 속썩이는 것도 똑같네... 지금까지 본.. 2019. 2. 7.
백준 1932번 C++ 정수 삼각형 https://www.acmicpc.net/problem/1932 처음에 문제를 잘못 이해하고 두 수 중 최대인 것을 골라 아래로 내려오는 건 줄 알았다.그래서 1차원 배열로 풀고 뿌듯해하다가 다시 읽어보니 아예 아닌 문제 ㅋㅋㅋㅋ그리고나서 처음 짠 코드가 다음과 같다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546#include #include using namespace std;int main() { int n; cin >> n; int** tri = new int*[n]; for (int i = 0; i tri[i][j]; } } int max_sum = 0; if (n == 1) { max_su.. 2019. 2. 7.