[백준] 2406, 2501, 3460, 10818, 10870 파이썬 풀이

다음을 보고 여섯 문제 풀었다.

 

준비운동 PART1. 튼튼한 기본기

https://covenant.tistory.com/224

 

코딩테스트 대비를 위한 백준 문제 추천

코딩테스트 대비를 위한 백준 문제 추천 끝 없는 훈련만이 실전에서 흐트럼없이 정답을 향해서 움직일 수 있습니다. (Photo by Specna Arms on Unsplash) 작년 한 해 수많은 코딩테스트를 직접 경험하고

covenant.tistory.com

 

약수 구하기

def solution(n, k):
    cnt = 0;
    for i in range(1, n+1):
        if (n % i == 0):
            cnt = cnt+1;
        if (cnt == k):
            return i;
    return 0;
    
n, k = map(int, input().split())

print(solution(n, k));

 

 

이진수

def solution(n):
    i = 0;
    while (n > 0):
        if (n%2 == 1):
            print(i,end=' ');
        n = n//2;
        i += 1;
        
for _ in range(int(input())):
    n = int(input());
    solution(n);

 

 

최소, 최대

input();
numbers = list(map(int, input().split()));
numbers.sort();
print(numbers[0], numbers[-1]);

 

 

지능형 기차

p_nums = [0]
for _ in range(10):
    a, b = map(int, input().split())
    p_nums.append(p_nums[-1] + b - a)
print(max(p_nums))

 

 

피보나치 수

def solution(n):
    if n < 2:
        return n
    return solution(n-2)+solution(n-1)
    
print(solution(int(input())))

 

 

일곱 난쟁이

nans = []
for _ in range(9):
    nans.append(int(input()))
    
target = sum(nans) - 100

for i in range(9):
    for j in range(i+1,9):
        if nans[i]+nans[j] == target:
            for k in range(9):
                if k == i | k == j:
                    continue
                print(nans[k])
            break