[2577] 숫자의 개수
해결 포인트
a in b 와 count 함수를 사용하면 쉽게 풀이 가능하다.
답안
num = []
sum = 1
for i in range(3):
num = int(input())
sum = sum * num
sum = str(sum)
for j in range(10):
print(sum.count(str(j)))
[2839] 설탕 배달
해결 포인트
최소한의 수량으로 배달하는게 포인트다.
우선적으로 5를 나눴을때 나누어떨어지는지 보고
3을 한번씩 빼주며 계산하면 쉽게 풀이 가능하다.
답안
num = int(input())
cnt = 0
while num >= 0:
if num % 5 == 0:
cnt += num // 5
print(cnt)
break
num -= 3
cnt += 1
else:
print(-1)
while문을 통해 num이 0이상일때 반복시키며
5로 나눴을때 나눠떨어지면 몫을 카운트 및 출력하고
그렇지 않을 경우 -3 시키며 다시한번 5로 나눴을때 살펴보는 로직이다.
[10872] 팩토리얼
해결 포인트
쉽다.....
답안
import sys
input = sys.stdin.readline()
num = int(input)
result = 1
for i in range(1,num+1):
result *= i
print(result)
[2558] A+B -2
해결 포인트
답안
num = int(input())
num2 = int(input())
print(num+num2)
[10870] 피보나치 수5
해결 포인트
0과1이 들어간 리스트를 하나만들어주고
해당 인덱스 n n+1를 더한 값을 append 시켜주면 쉽게 풀이 가능하다.
답안
num = int(input())
cnt = 0
li = [0,1]
for i in range(num):
li.append(li[i]+li[i+1])
print(li[num])
[1085] 직사각형에서 탈출
해결 포인트
x,y,w,h 포인트중 x와 w 그리고 y와 h 이렇게 쌍을 이루어
태두리에 닿을때를 고민하며 로직을 구현하면 된다.
이해가 어려우면 좌표를 그려보자
답안
x,y,w,h = map(int,input().split())
li = [w - x, x, h-y, y]
print(min(li))
리스트에 들어간 값은 태두리에 닿았을때의 값들이라고 생각하면 된다.
이중 최솟값을 찾는것이니 min함수를 이용하면 된다.
[2609] 최대공약수와 최소공배수
해결 포인트
math 함수를 공부하면 쉽게 풀이 가능하다.
답안
import math
a,b = map(int, input().split())
print(math.gcd(a,b))
print(math.lcm(a,b))
사실 함수 없이 수학적 논리로 구현하는것이 더 좋겠지만...
편한방법이 있으니,,,
[10039] 평균 점수
해결 포인트
데이터를 입력받을때 조건문을 통해
40점 미만 점수를 거르면 쉽게 풀이 가능하다.
답안
num = []
for i in range(5):
a = int(input())
if a < 40:
num.append(40)
else:
num.append(a)
print(int(sum(num)/len(num)))
'코딩 > 백준알고리즘' 카테고리의 다른 글
[파이썬] 16. 기본수학...백준(10828, 10773, 2920, 2164) (0) | 2022.09.22 |
---|---|
[파이썬] 14. 정렬...백준(1427, 11650, 11651, 1181, 10814) (0) | 2022.09.16 |
[파이썬] 13. 정렬...백준(2750, 2751, 25305) (0) | 2022.09.15 |
[파이썬] 12. 기본수학...백준(1978, 2581, 11653, 1929) (0) | 2022.09.14 |
[파이썬] 11. 기본수학...백준(10250, 10757) (0) | 2022.09.13 |