백준 24262번 : 알고리즘 수업 - 알고리즘의 수행 시간 1 (시간복잡도)
문제
오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자.
입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시간을 예제 출력과 같은 방식으로 출력해보자.
MenOfPassion 알고리즘은 다음과 같다.
MenOfPassion(A[], n) {
i = ⌊n / 2⌋;
return A[i]; # 코드1
}
입력
첫째 줄에 입력의 크기 n(1 ≤ n ≤ 500,000)이 주어진다.
출력
첫째 줄에 코드1 의 수행 횟수를 출력한다.
둘째 줄에 코드1의 수행 횟수를 다항식으로 나타내었을 때, 최고차항의 차수를 출력한다. 단, 다항식으로 나타낼 수 없거나 최고차항의 차수가 3보다 크면 4를 출력한다.
예제 입력 1 복사
1
예제 출력 1 복사
1
0
코드1 이 1회 수행되고 알고리즘은 상수 시간이 소요된다.
풀이
1. 수행시간에 대해서 알아야한다.
2. 코드의 수행 횟수와 알고리즘의 수행 시간을 출력해야하는 문제
- 코드의 수행 횟수 : 해당 코드가 몇 번 수행 됐는지 횟수를 나타낸다
- 알고리즘 수행 시간 : 알고리즘의 성능 지표. 어떤 작업 A를 수행해야 되는 코드를 작성할 때 이를 해결하는 여러 방법을 알고리즘이라고 한다.
for _ in range(5):
print("TEST")
이 코드에서 코드의 수행 횟수는 5회이다.
for _ in range(n):
print(n)
정수 0~n-1까지 출력한다.
알고리즘의 수행 시간은 n의 크기와 비례해 수행되기 때문에 알고리즘 수행시간은 n이다.
for i in range(n):
for j in range(n):
print(list[i][j]) # CODE 3
n*n 2차원 리스트를 출력한다. n*n번 수행하기 떄문에 알고리즘 수행 시간은 n*2이다.
해당 문제 풀이
print("""1 0""")
참고 자료
[알고리즘] Time Complexity (시간 복잡도) - 하나몬
⚡️ Time Complexity (시간 복잡도) Time Complexity (시간 복잡도)를 고려한 효율적인 알고리즘 구현 방법에 대한 고민과 Big-O 표기법을 이용해 시간 복잡도를 나타내는 방법에 대해 알아봅시다. ❗️효
hanamon.kr
[백준/Python] 24262번 알고리즘 수업 - 알고리즘의 수행 시간 1 문제
■ 24262번 알고리즘 수업 - 알고리즘의 수행 시간 1 문제 ■ 코드 풀이 처음 문제를 접했을 때, 당황스러웠습니다. 아무리 읽어도 문제가 이해가 안 되더군요. 혹시 저와 같은 분이 계셨다면, 아래
kevinitcoding.tistory.com