Home [ALGORITHM_JOBS] 18. 완전탐색
Post
Cancel

[ALGORITHM_JOBS] 18. 완전탐색



Preview Image

완전탐색이란?

👉 가능한 방법을 전부 만들어 시도해보는 알고리즘을 의미한다.
👉 컴퓨터의 빠른 계산 속도를 잘 이용하는 방법이다.

예시

표사진

위와 같이 문이 3개가 있고 가운데 문에 보물이 숨겨져있다고 가정해보자.(여기서 우리는 보물의 위치를 모른다)
이때 보물을 찾을 수 있는 방법은 문을 하나씩 열어보는 방법이다.
이렇게 가능한 방법을 전부 시도해 보는 방법이 완전탐색이다.


완전탐색 문제

1 ~ N까지의 숫자들 중에서 약수의 개수가 홀수인 숫자들의 개수를 출력하는 프로그램을 작성하여라.


입력

10


출력

3


아이디어

완전 탐색을 통해 문제를 풀었다.
n을 입력받고 1 ~ n까지 for 문을 돌려서 약수의 개수를 구했다.
약수를 구하는 방식은 1 ~ i + 1까지 for문을 돌리고 약수이면 count 변수에 1씩 증가했다.
약수의 개수가 홀수인 것은 count가 홀수를 의미하므로 count가 홀수이면 resultCount에 1씩 누적시켰다.
최종적으로 홀수 숫자들의 누적인 resultCount를 출력했다.


코드

풀이보기(클릭)
1
2
3
4
5
6
7
8
9
10
n = int(input())
resultCount = 0
for i in range(1, n + 1):
    count = 0
    for j in range(1, i+1):
        if i % j == 0:
            count += 1
    if count % 2 != 0:
        resultCount += 1
print(resultCount)

문제 출처

ALGORITHM JOBS

This post is licensed under CC BY 4.0 by the author.

[ALGORITHM_JOBS] 17. array 3 :star:

[네트워크 공부] 유니,멀티,브로드캐스트

Trending Tags