알고리즘
-
2884.알람 시계알고리즘/백준 BAEK JOON 2020. 4. 21. 23:10
이번 문제 역시 난이도가 매우매우 쉽다... 사실 포스팅할 필요도 없다. 다만 구현 문제를 보면서 느끼는 점은 예외처리를 생각해보라는 의도들이 있는 것 같아서... 다음 포스팅 부터 쉬운 문제들은 최대한 안쓰고 넘어가야 겠다. 2884번: 알람 시계 문제 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다. 이런 상근이를 불쌍하게 보던, 창영이는 자신이 사용하는 방법을 추천해 주었다. 바로 "45분 일찍 알람 설정하기"이다. 이 방법은 단순하다. 원래 설정되어 있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. ww..
-
2577.숫자의 개수알고리즘/백준 BAEK JOON 2020. 4. 21. 22:55
이번에 풀어볼 문제는 난이도는 굉장히 쉽다면 쉽다. 구현의 분류에 있는 문제인데 어떻게하면 좀더 효율적으로 풀 수 있는지 고민해볼 수도 있고 여러사람의 코드를 보면서 생각해볼 수 있는 문제인 것 같다. 지금까지 풀었던 구현 문제들(블로그에 포스팅 안한 것도 있음)을 보면 대부분 난이도는 그렇게 어렵지 않지만 생각해보기 좋은 문제들이 나오는 것 같다. 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다. www.acmicpc.net #include #include #include using namespace std; int main() { int a, b, c; cin >> a..
-
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제출하면서 제발 한 번에 좀 맞아라 했는데 (솔직히 속으론 항상 그랬듯 "틀렸습니다"가 나올 줄 알았다..) 너무 기분 좋게 첫 제출로 한 번에 정답을 맞..