본문 바로가기

전체 글272

[C++] 2차원 동적 배열 생성 1차원 동적 배열을 생성하기 위해서는자바에서 배열을 생성할 때와 비슷하게 생성하면 됩니다.123456789101112131415161718#include using namespace std; int main(){ int n; cin >> n; int *list = new int[n]; for(int i = 0; i > list[i]; for(int i = 0; i 2019. 3. 19.
[백준 11728] 배열 합치기 배열을 합치는 데, 병합정렬(Merge Sort)를 사용하였다.별로 어렵지 않은 문제였다. 문제: https://www.acmicpc.net/problem/11728 문제 정렬되어있는 두 배열 A와 B가 주어진다. 두 배열을 합친 다음 정렬해서 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000)둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거나 같은 정수이다. 출력 첫째 줄에 두 배열을 합친 후 정렬한 결과를 출력한다. 예제 입력 1 2 2 3 5 2 9 예제 출력 1 2 3 5 예제 입력 2 2 1 4 7 1 예제 출력 2 1 4 7 예제 입력.. 2019. 3. 17.
[백준 1722] 순열의 순서 문제 : https://www.acmicpc.net/problem/1722 문제를 처음에 보고 너무 쉽게 생각했는지, 직접 구현한 배열의 next_permutation을 사용했다.하지만, 시간초과... next_permutation으로 문제를 풀면 Big-O 표기로 O(N!)이 나오기 때문이였다. 항상 분발하는 자세로 겸손히 공부해야겠다. ㅠㅠ 실패한 코드 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475#include#include using namespace std; bool next_permutat.. 2019. 3. 17.
[Algorithm] C++ Bitmask란? Bitmask란 비트위에 마스크를 씌우는 방식을 통해서어떤 위치에 집합의 원소가 존재하는지 아닌지, 추가하는 등의 행위를 말합니다. 주로 이를 마스크와 같다고 하여, 비트마스크라고 말합니다. 간단한 예시를 들자면, 네가지 원소를 가질 수 있는 집합이 있습니다. 우리는 이를 {1,2,3,4}로 나타낼 수 있습니다. 이 집합을 보다 효율적이고 간결하며 가독성있게 나타낼 수 있는 것이, 바로 비트표기이며 우리는 이를 1111(2)로 나타낼 수 있습니다. (오른쪽부터 원소 1입니다) 이 집합의 원소 중, 세번째 원소가 존재하는 지 확인하고자 한다면, 우리는 마스크를 씌울 수 있는데 이것이 비트마스크입니다. 1111(2) & 0100(2) => 0100(2) > 0 으로 세번째 원소가 존재하게 됨을 알 수 있습니.. 2019. 3. 17.
[백준 11723] 집합 다른 방법을 사용하여 충분히 풀 수 있지만, 비트마스크를 사용하여 풀 수 있습니다. 비트마스크란? 참고하면 좋은 글 : https://redcoder.tistory.com/11 출처 : https://www.acmicpc.net/problem/11723 문제 비어있는 공집합 S가 주어졌을 때, 아래 연산을 수행하는 프로그램을 작성하시오. add x: S에 x를 추가한다. (1 ≤ x ≤ 20) S에 x가 이미 있는 경우에는 연산을 무시한다.remove x: S에서 x를 제거한다. (1 ≤ x ≤ 20) S에 x가 없는 경우에는 연산을 무시한다.check x: S에 x가 있으면 1을, 없으면 0을 출력한다.toggle x: S에 x가 있으면 x를 제거하고, 없으면 x를 추가한다. (1 ≤ x ≤ 20)al.. 2019. 3. 16.
[백준 10974] 전체 수열 STL을 사용하지 않고 푸는 것이 목적이였기 때문에, 직접 next_premutation을 구현하였다.생각보다 까다로운 것, 다음에 기억할 수 있을까? 출처 : https://www.acmicpc.net/problem/10974 문제 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 8)이 주어진다. 출력 첫째 줄부터 N!개의 줄에 걸쳐서 모든 순열을 사전순으로 출력한다.예제 입력 1 3 예제 출력 1 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 1234567891011121314151617181920212223242526272829303132333435363738394041#include using .. 2019. 3. 16.