DeepFlowest

[모두의 알고리즘 with 파이썬] 01_알고리즘 기초 본문

알고리즘/책 예제

[모두의 알고리즘 with 파이썬] 01_알고리즘 기초

Orange57 2021. 1. 26. 21:28
728x90
반응형
SMALL

1. 1부터 n까지 연속한 숫자의 합을 구하는 알고리즘

  • 입력: n
  • 출력: 1부터 n까지의 숫자를 더한 값

방법 1)

def sum_n(n):
    result = 0
    for i in range(n+1):
        result+=i
    return result

print(sum_n(10))
print(sum_n(100))

===================================
결과 : 
55
5050

방법 2)

def sum_n(n):
    result = (n*(n+1))/2
    return int(result)

print(sum_n(10))
print(sum_n(100))

===================================
결과 : 
55
5050

 

2. 최댓값을 구하는 알고리즘

  • 입력: 숫자가 n개 들어 있는 리스트
  • 출력: 숫자 n개 중 최댓값
def find_max(a):
    max = a[0]
    for i in a:
        if i > max:
            max = i
        else:
            continue
    return max


v = [17, 92, 18, 33, 58, 7, 33, 42]
print(find_max(v))

======================================
결과 : 
92

 

  • 입력: 숫자가 n개 들어 있는 리스트
  • 출력: 숫자 n개 중에서 최댓값이 있는 위치(0부터 n-1까지의 값)
def find_max_idx(a):
    max = a[0]
    for i in range(len(a)):
        if a[i] > max:
            max = a[i]
            max_idx = i
        else:
            continue
    return max_idx

v = [17, 92, 18, 33, 58, 7, 33, 42]
print(find_max_idx(v))

=====================================
결과 : 
1

 

3. 동명이인을 찾는 알고리즘

  • 입력: 이름이 n개 들어 있는 리스트
  • 출력: 이름 n개 중 반복되는 이름의 집합
def find_same_name(a):
    result = set()  # 빈 집합 생성
    for i in range(len(a)):
        name = a[i]
        for j in range(i+1,len(a)):
            if name == a[j]:
                result.add(a[j])
            else:
                continue
    return result

name = ["Tom", "Jerry", "Mike", "Tom"]  # 대소문자 유의: 파이썬은 대소문자를 구분함
print(find_same_name(name))


name2 = ["Tom", "Jerry", "Mike", "Tom", "Mike"]
print(find_same_name(name2))

=========================================================
결과 : 
{'Tom'}
{'Tom', 'Mike'}

 

코드 정리 깃허브 : github.com/Yearang-Lee/Algorithm/tree/master/Algorithm%20Book%20Examples/%EB%AA%A8%EB%91%90%EC%9D%98%20%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%20with%20%ED%8C%8C%EC%9D%B4%EC%8D%AC 

 

Yearang-Lee/Algorithm

Contribute to Yearang-Lee/Algorithm development by creating an account on GitHub.

github.com


문제 출처 : 모두의 알고리즘 with 파이썬, 엘리스 아카데미

728x90
반응형
LIST
Comments