저번에 공부하던 알고리즘 책이 내 수준에 맞는것 같지 않아 보다 쉬운 책을 하나 더 구매했다.
다행히 지금까지는 충분히 이해할 수 있을 정도의 난이도였고 이전에 공부하던 책도 틈틈히 보며 알고리즘에 대해 더 자세히 공부할 예정이다.
문제1. 세 정수의 최댓값 구하기
a = int(input('정수 a의 값을 입력하시오 :'))
b = int(input('정수 b의 값을 입력하시오 :'))
c = int(input('정수 c의 값을 입력하시오 :'))
max = a
if b > max:
max = b
if c > max:
max = c
print(f'최댓값은{max}입니다.')
이 알고리즘은 간단하다. 처음 a를 최댓값으로 주어서 만약 b 가 a보다 크다면 b가 최댓값이 되는 것이고 c와 비교를 한 뒤 최댓값을 판별해 최종적으로 max를 출력하는 코드이다.
문제2. 양수와 음수 판별하기
n = int(input('정수를 입력하시오 : '))
if n > 0:
print('이 수는 양수입니다.')
elif n < 0:
print('이 수는 음수입니다.')
else:
print('이 수는 0 입니다.')
이 알고리즘의 순서도이다. 최악의 경우(n이 0일 경우) 3개의 조건문을 수행하고 최선의 경우(n이 양수일 경우) 1개의 조건문을 수행하면 출력물을 얻을 수 있다.
문제 3. 3개로 분기하는 조건문
n = int(input('정수를 입력하시오 :'))
if n == 1:
print('A')
elif n == 2:
print('B')
else:
print('C')
문제 3-1. 3개?로 분기하는 조건문
n = int(input('정수를 입력하시오 :'))
if n == 1:
print('A')
elif n == 2:
print('B')
elif n == 3:
print('C')
위 두 코드를 살펴보자. 얼핏보면 두개가 같이 3개의 조건을 가진 코드라고 생각할 수 있다. 하지만 3-1 문제는 123을 제외한 수를 입력했을 때 아무것도 출력하지 않는 것으로 보아 숨어있는 else 문이 있다는 것을 알 수 있다.
따라서 3번 문제는 3개로 분기하는 조건문이 맞고 3-1 번 문제는 4개로 분기하는 조건문이라고 해야 맞는 말이다.
반응형
'Algorithm > 자료구조와 함께 배우는 알고리즘' 카테고리의 다른 글
검색 알고리즘 - (선형 알고리즘) (0) | 2022.07.21 |
---|---|
기본 자료구조와 배열 (0) | 2022.07.21 |
반복하는 알고리즘 (2) (0) | 2022.07.18 |
반복하는 알고리즘 (1) (0) | 2022.07.15 |
자료구조와 함께 배우는 알고리즘 출처 (0) | 2022.07.14 |
댓글