분류 전체보기
-
1793.타일링알고리즘/백준 BAEK JOON 2020. 4. 20. 22:15
(*)이번문제는 백준에 있는 1793번 타일링이다. dp에 속하는 메모이제이션을 공부하기 좋은 문제이며 long long int보다 커서 출력이 어려울 때 구현하는 Big interger도 활용할 수 있는 문제이다. 이해하는데 좀 많은 시간이 걸린 것 같다. 재귀함수가 특히 나는 너무 헷갈린다..쩝.. 그래도 이해했으니 성공! 1793번: 타일링 문제 2×n 직사각형을 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 숫자 0 ≤ n ≤ 250이 주어진다. 출력 입력으로 주어지는 각각의 n마다, 2×n 직사각형을 채우는 방법의 ..
-
1722.순열의 순서알고리즘/백준 BAEK JOON 2020. 4. 15. 13:55
이번 문제는 순열의 순서이다. 1722번: 순열의 순서 첫째 줄에 N(1≤N≤20)이 주어진다. 둘째 줄의 첫 번째 수는 소문제 번호이다. 1인 경우 k(1≤k≤N!)를 입력받고, 2인 경우 임의의 순열을 나타내는 N개의 수를 입력받는다. N개의 수에는 1부터 N까지의 정수가 한 번씩만 나타난다. www.acmicpc.net 일단 풀지 못해서 다른사람들의 코드를 참조했다. 그 이유는 시간복잡도 때문이었다. next_permutation이나 prev_permutation을 사용하면 답은 구할 수 있지만 시간 복잡도 때문에 '시간 초과'가 발생한다... 후... 그래서 다른방식으로 분석을 진행해서 풀어야한다. 다른사람의 풀이를 보고 이해하는데도 머리가 나쁜건지 시간이 좀 걸렸다.. #i..
-
5430.AC알고리즘/백준 BAEK JOON 2020. 4. 13. 18:10
이번에 풀어볼 문제는 백준의 5430번 AC이다. 난이도가 많이 어렵기보단 센스가 필요한 거 같다. 문제를 보도록 하자. .....?????? 5430번: AC 문제 선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다. 함수 R은 배열에 있는 숫자의 순서를 뒤집는 함수이고, D는 첫 번째 숫자를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다. 함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. www.acmicpc.net #include #include #incl..
-
1021.회전하는 큐알고리즘/백준 BAEK JOON 2020. 4. 9. 00:41
이번 문제도 조금 당황할 순 있어도 난이도가 그렇게 어렵지 않았다. 문제에서 시키는 대로 차근차근 생각하면 되고 문제를 제대로 읽어야 한다.이번 문제에서는 조건을 대충 읽었다가 내 맘대로 구현을 해버렸다. 문제를 다시 읽고 나서야내 맘대로 문제를 풀었다는 것을 확인했다. ( 문제 대충 읽는 실수 주의! )1021번: 회전하는 큐첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 순서대로 주어진다. 위치는 1보다 크거나 같고, N보다 작거나 같은 자연수이다.www.acmicpc.net #include #include #include using ..
-
1966.프린터 큐알고리즘/백준 BAEK JOON 2020. 4. 7. 20:39
이번 문제는 Queue를 이용한 프린터 큐 문제이다!1966번: 프린터 큐문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를www.acmicpc.net제출하면서 제발 한 번에 좀 맞아라 했는데 (솔직히 속으론 항상 그랬듯 "틀렸습니다"가 나올 줄 알았다..) 너무 기분 좋게 첫 제출로 한 번에 정답을 맞..
-
11866.요세푸스 문제 0알고리즘/백준 BAEK JOON 2020. 4. 6. 23:57
이번 문제는 백준의 11866 요세푸스 문제 0이다.11866번: 요세푸스 문제 0첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)www.acmicpc.net문제를 이해하는 건 금방했는데 원형으로 배열을 만들어야하나 하는 생각을 했고굳이 그럴 필요가 없다고 생각해서 포인터로 예외처리를 하려고 하였으나너무나 비효율적이었고 결국 queue를 사용해서 풀었다. 조금만 쉽게 생각하면 됬는데.. 허허.. #include #include using namespace std; int main() { int n, k; cin >> n >> k; // 길이와 K번째 순서 입력 queueq; // queue for(int i=1; i
-
4949.균형잡힌 세상알고리즘/백준 BAEK JOON 2020. 4. 6. 21:37
이번 문제는 백준의 4949. 균형잡힌 세상이다. 세상의 균형을 잡다가 내가 잡힐뻔했다ㅡㅡ 4949번: 균형잡힌 세상 문제 세계는 균형이 잘 잡혀있어야 한다. 양과 음, 빛과 어둠 그리고 왼쪽 괄호와 오른쪽 괄호처럼 말이다. 정민이의 임무는 어떤 문자열이 주어졌을 때, 괄호들의 균형이 잘 맞춰져 있는지 판단하는 프로그램을 짜는 것이다. 문자열에 포함되는 괄호는 소괄호("()") 와 대괄호("[]")로 2종류이고, 문자열이 균형을 이루는 조건은 아래와 같다. 모든 왼쪽 소괄호("(")는 오른쪽 소괄호(")")와만 짝을 이뤄야 한다. 모든 왼쪽 대괄호("[")는 오른쪽 대괄 www.acmicpc.net 이번 문제에서 중점적으로 봐야하는 것은 언제나 그렇듯 예외처리이다. 입력부분과 예외처리부분을 정신똑바로 차..