[백준 알고리즘] 7568번: 덩치 (파이썬 / Python)
·
알고리즘/백준
문제 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x > p 그리고 y > q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 사람의 덩치가 각각 (56, 177), (45, 165) 라고 한다면 A의 덩치가 B보다 큰 셈이 된다. 그런데 서로 다른 덩치끼리 크기를 정할 수 없는 경우도 있다. 예를 들어 두 사람 C와 D의 덩치가 각각 (45, 181), (55, 173)이라면 몸무게는 D가 C보다 더 무겁고, 키는 C가 더 크므로, "덩치"로만 볼..
[백준 알고리즘] 17478번: 재귀함수가 뭔가요? (파이썬 / Python)
·
알고리즘/백준
문제 접근 반복되지 않는 출력문 - "어느 한 ~ 물었다." 반복되는 출력문 - "재귀함수가 뭔가요?" / 답변 반복된 출력이 변경되는 부분 - 끝까지 갔을 때 답변이 "재귀함수는 자기 자신을 호출하는 함수라네"로 특수함 -> 입력값을 매개변수로 하는 함수에 매개변수에 -1을 한 재귀함수를 호출한다. 매개변수가 0이 되었을 때 답변을 다르게 하도록 구현 정답 코드 import sys def what(t): line = "____" if t >= 1: print(line*(n-t) + '"재귀함수가 뭔가요?"') print(line*(n-t) + '"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.') print(line*(n-t) + '마을 사람들은 모두 그 선인에게 수..
[백준 알고리즘] 10870번: 피보나치 수 5 (파이썬 / Python)
·
알고리즘/백준
문제 접근 피보나치 수열은 for문으로도 구현 가능하지만 재귀함수로도 구현 가능하다. Fn = Fn-1 + Fn-2 (n ≥ 2)를 활용하면 될 것 같다. 정답 코드 import sys def fibonacci(n): if n == 0: return 0 elif n == 1 or n == 2: return 1 else: return fibonacci(n-1) + fibonacci(n-2) n = int(sys.stdin.readline()) print(fibonacci(n)) 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + ..
[백준 알고리즘] 2839번 : 설탕 배달 (파이썬 / Python)
·
알고리즘/백준
접근 방법 상근이는 최대한 적은 봉지를 들고 가려고 한다. 가장 적은 수의 봉지를 들고 가려면, 가능한 한 5kg의 봉지를 많이, 3kg의 봉지를 적게 구성해야 한다. 정답 코드 import sys n = int(sys.stdin.readline()) flag = 0 for i in range((n // 3) + 1): three = 3 * i five = (n - three) / 5 if five == int(five): print(int(i + five)) flag = 1 break if flag == 0: print(-1) 코드 설명 3kg 봉지의 수가 0개인 경우 -> 1개인 경우 -> .... -> n//3개인 경우 까지 for문을 반복한다. 각 경우에 five 변수는 n에서 three를 뺀 것..