본문 바로가기

수학21

[ 파이썬(python) ] 백준 5086 - 배수와 약수 📍 백준 5086 - 배수와 약수 백준 5086 - 배수와 약수 ⚡️ 나의 풀이 배수와 약수의 관계를 파악하는 문제다. 기준을 너무 첫 번째 숫자로만 잡아서 생각이 고착되어있던 것 같다. 나의 풀이는 다음과 같다. 두 수를 대소비교한다. a b일 때는 a를 기준으로 약수를 구하고 b가 a의 약수와 같다면 배수(multiple)이고 반복문을 다 돌았는데도 찾지 못하면 neither이다. a == b인 경우는 없다. 이렇게 안 해도 다른 사람은 더욱 쉽게 구현했다. a % b == 0이면 a >= b이고 (이때, a != b), a는 b의 배수(multip.. 2021. 6. 16.
[ 파이썬(python) ] 백준 5554 - 심부름 가는 길 📍 백준 5554 - 심부름 가는 길 백준 5554 - 심부름 가는 길 💡 나의 풀이 입력값을 초로 받았기 때문에 이를 분, 초로 변환해주면 된다. 이때 divmod를 사용해서 몫과 나머지를 한번에 구했다. time = sum([int(input()) for _ in range(4)]) print('\n'.join(map(str, divmod(time, 60)))) 2021. 6. 11.
[ 파이썬(python) ] 백준 10833 - 사과 📍 백준 10833 - 사과 백준 10833 - 사과 💡 나의 풀이 각 학교의 `사과 개수 % 학생 수`를 누적시켜주면 된다. n = int(input()) rest = 0 for _ in range(n): student, apple = map(int, input().split()) rest += (apple % student) print(rest) 2021. 6. 11.
[ 파이썬(python) ] 백준 2775 - 부녀회장이 될테야 📍 백준 2775 - 부녀회장이 될테야 백준 2775 - 부녀회장이 될테야 💡 나의 풀이 이 문제는 DP, 재귀로 풀 수 있지만, DP로 푸는방법이 시간이 훨씬 단축된다. 재귀로 풀때는 python3에서 시간초과에 걸리므로 pypy로 제출해야한다. DP 풀이방법이다. 0층의 i는 i명이 살기때문에 제일 아래는 [1, 2, 3, 4...]다. 문제는 층수가 증가 할때마다 이전 층수의 1호부터 b호까지 더한값을 사용해야하는데 이때 DP가 쓰인다. arr[i] += arr[i-1]로 1호부터 b호까지 값을 누적시킨다. 층수가 올라갈때는 3번 반복문 바깥에 하나 더 선언한다. for _ in range(k) 재귀 풀이방법이다. a: 층, b: 호 하단의 사진처럼 이전 index + 아래 index를 더해준다. .. 2021. 6. 10.
[ 파이썬(python) ] 백준 1712 - 손익분기점 📍 백준 1712 - 손익분기점 백준 1712 - 손익분기점 💡 나의 풀이 손익 분기점에 대한 이해가 있어야 이 문제를 풀 수 있다. 처음에 while문을 사용하여 풀었는데 다시 보니까 A, B, C가 21억 이하의 자연수기때문에 시간초과판정이 났다.(게다가 시간제한도 무려 0.35초 밖에 안된다.) 반복문을 사용하지 않고서 풀 수 있는 방법은 단순 사칙연산일텐데 공식이 잘 떠오르지 않았다. ㅠㅠ 구글링하다 코딩펜님 영상을 봤는데 이해가 잘 됐다. 결론적으로 손익분기점은 고정비용 + 가변비용 * n < 판매비용 * n 과 같이 나타 낼 수 있는데 다음과 같이 식을 정리 할 수 있다. (고정비용은 a, 가변비용은 b, 판매비용은 c로 가정했다.) a + (b * n) = (c * n) a = (c * n).. 2021. 6. 9.