반응형
1 2 3 4 5 6 8 9 10
" 다음 중 빠진 수는 무엇일까요 ? "
7
작은 범위이기에 눈으로 금방 파악
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 26 27 28 29 30
그럼 조금 더 많은 30개 입니다.
벌써 보기가 싫어졌습니다.
심지어 정렬이 잘 되어 있어서 확인하기 더 편합니다.
실제 데이터는 ?
훨씬 큰 데이터
정렬 되지 않은 데이터
지저분한 데이터
우리가 다룰 데이터는 예쁘고 깔끔하지 않습니다.
다양한 데이터를 만지는 연습을 하는 것이 좋다고 생각합니다.
### Python 빠진 수 찾기
데이터 : [ 1, 2, 3, 4, 5, 6, 8 , 9, 10]
해당 범위에서 빠진 번호를 찾는 알고리즘을 구현해 보도록 하겠습니다.
방법 1. 반복문으로 확인
1~10까지의 새로운 범위 데이터 생성합니다.
반복문을 통해 데이터를 하나 하나 확인하는 것입니다.
data=[1,2,3,4,5,6,8,9,10]
check_list=range(1,11)
for i in check_list:
if i not in data:
print('빠진수는 %d입니다.'%i)
방법 2. 데이터 합으로 비교
데이터를 모두 더한 값으로 비교합니다.
data=[1,2,3,4,5,6,8,9,10]
check_list=range(1,11)
sum_data=sum(data)
sum_check_list=sum(check_list)
result=sum_check_list-sum_data
print('빠진수는 %s입니다.'%result)
방법 3. 수 범위 덧셈
프로그래밍을 공부할 때, 단순히 컴퓨터가 아닌
수학적 사고와 접근 방법이 필요한 걸 느낄 수 있는 풀이입니다.
ㆍ1 ~ n 범위의 합 : (n * (n+1)) / 2
비교를 하기 위해 새로운 데이터 check_list를 만들었습니다.
하지만 체크 리스트가 없이도 빠진 수를 찾을 수 있습니다.
data=[1,2,3,4,5,6,8,9,10]
sum_data=sum(data)
check=int(10 * 11/ 2)
result=check-sum_data
print('빠진수는 %s입니다.'%result)
오늘은 간단하게 쉬운 알고리즘을 구현해 봤습니다.
건강 조심하시고 좋은 하루 되세요!
읽어주셔서 감사합니다.
반응형
'알고리즘' 카테고리의 다른 글
[Python&SQL] 치환문자를 통해 피타고라스 정리 구현 (1) | 2021.01.18 |
---|---|
[Python&SQL] 각 자리수 합 더하기 (2) | 2021.01.15 |
[Python&SQL] 적어도 불량품 1개일 확률 ? (7) | 2021.01.14 |
[Python & SQL] 몬테 카를로 | 원주율 구하기 (1) | 2021.01.09 |
[Python] 주사위 던지기 (2) | 2021.01.05 |
[Python&SQL] 동전의 앞면이 나올 확률은 ? Random (0) | 2021.01.04 |
[Python&SQL] 재귀 함수 팩토리얼 구구단 (0) | 2021.01.03 |
[Python] 소인수 분해하기 (2) | 2021.01.02 |