Where who wants to meet someone

백준 Swift [24265] 알고리즘 수업 - 알고리즘의 수행 시간 4 본문

백준 알고리즘 문제 기록/시간 복잡도

백준 Swift [24265] 알고리즘 수업 - 알고리즘의 수행 시간 4

Lust3r 2023. 7. 3. 14:04
728x90

난이도

브론즈 III

 

문제

https://www.acmicpc.net/problem/24265

 

24265번: 알고리즘 수업 - 알고리즘의 수행 시간 4

오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시

www.acmicpc.net

 

내 답안

import Foundation

let input = Double(readLine()!)!

print(Int((pow(input, 2) - input) / 2))
print(2)

n = 7

1: 2 to 7 -> 6

2: 3 to 7 -> 5

3: 4 to 7 -> 4

4: 5 to 7 -> 3

5: 6 to 7 -> 2

6: 7 to 7 -> 1

 

수행 횟수: 21 = 6 + 5 + 4 + 3 + 2 + 1

 

여기까지 봤을 때 n-1부터 n까지 더한다는 것만 생각이 나서 전체 규칙을 발견하고자 하나하나 '물리'적 풀이를 했다.

 

n = 2

1: 2 to 2 -> 1

 

수행 횟수: 1 = 1

 

n = 3

1: 2 to 3 -> 2

2: 3 to 3 -> 1

 

수행 횟수: 3 = 2 + 1

 

n = 4

1: 2 to 4 -> 3

2: 3 to 4 -> 2

3: 4 to 4 -> 1

 

수행 횟수: 6 = 3 + 2 + 1

 

n = 5

1: 2 to 5 -> 4

2: 3 to 5 -> 3

3: 4 to 5 -> 2

4: 5 to 5 -> 1

 

수행 횟수: 10 = 4 + 3 + 2 + 1

 

2는 1 // 3은 3 // 4는 6 // 5는 10 // 7은 21

n/2 2n/2 3n/2 4n/2 6n/2

n/2 (n-1)n/2 (n-1)n/2

(n-1)n/2

n^2-n / 2

 

위와 같은 단계를 거쳐 n^2-n / 2 라는 결론이 나오게 되었다.