[백준] 1026번 보물 c++
·
알고리즘 이론/백준
1026. 보물 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 제출 수가 굉장히 큰 것을 보아, 알고리즘의 기초를 다루는데 있어 의미있는 문제라고 생각한다. 풀이: 문제에서 B는 재배열하면 안된다는 조건을 주었지만, 아이러니하게도 해당 알고리즘을 구현하는데 있어서 B의 순서를 바꾸어도 정답에는 아무런 영향이 없다. 우선 주어진 배열의 길이 N은 50보다 작거나 같은 자연수이기 때문에 시간제한은 크게 걱정하지 않아도 된다. 다만 매번 주의 깊게 살펴볼 것은 문제에서 배열의 원소들이 제시될 때, 이 원소..
[알고리즘 이론] 시간 복잡도
·
알고리즘 이론
알고리즘의 시간 복잡도 시간 복잡도란 무엇일까? 시간 복잡도는 입력의 크기를 통하여 알고리즘의 수행 시간을 추정 값이다. 이를 통하여 알고리즘을 구현하기 전, 해당 방법으로 구현하였을 때의 수행 속도를 예상할 수 있다. 시간 복잡도 표현 방법 시간 복잡도는 'O(...)'로 나타낸다. 괄호 안에는 함수가 들어간다. 한번 예제를 통하여 알아보자. 예시01) a++; b++; c = a + b; O(1) : 위와 같이 코드가 단일 명령어로 구성되어 있었을 때의 시간 복잡도이다. 예시02) for (int k = i+1; k