[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)))

 

+ Recent posts