본문 바로가기
Algorithm/자료구조와 함께 배우는 알고리즘

알고리즘이란?

by re-hwi 2022. 7. 15.

저번에 공부하던 알고리즘 책이 내 수준에 맞는것 같지 않아 보다 쉬운 책을 하나 더 구매했다.

 

다행히 지금까지는 충분히 이해할 수 있을 정도의 난이도였고 이전에 공부하던 책도 틈틈히 보며 알고리즘에 대해 더 자세히 공부할 예정이다. 


문제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개로 분기하는 조건문이라고 해야 맞는 말이다.

반응형

댓글