728x90
반응형

소수 찾기 파이썬 알고리즘 문제

input = 20


def find_prime_list_under_number(number):
    prime_list = []
    for n in range(2,number+1):
        for i in range(2,n):
            if n % i == 0:
                break
        else:
            prime_list.append(n)

    return prime_list


result = find_prime_list_under_number(input)
print(result)

1. 1은 소수가 아니므로 건너뛴다.
2. 자기 자신보다 1만큼 작은 수까지 반복문을 돌리고,
나누어 떨어지는 값이 있다면 소수가 아니다.
3. 나누어 떨어지는 값이 없다면 소수다.

 

숫자 최소 뒤집기(모두 000000, 111111로 만들수 있는 최소 뒤집기 횟수 구하기)

input = "011110"


def find_count_to_turn_out_to_all_zero_or_all_one(string):
    count_to_all_zero = 0
    count_to_all_one = 0

    if string[0] == '0':
        count_to_all_one += 1
    elif string[0] == '1':
        count_to_all_zero += 1

    for i in range(len(string) - 1):
        if string[i] != string[i + 1]:
            if string[i + 1] == '0':
                count_to_all_one += 1
            if string[i + 1] == '1':
                count_to_all_zero += 1

    return min(count_to_all_one, count_to_all_zero)


result = find_count_to_turn_out_to_all_zero_or_all_one(input)
print(result)
728x90
반응형

+ Recent posts