[골드 1] 백준 11401 - 이항 계수 3 (파이썬)
[골드 1] 백준 11401 - 이항 계수 3 (파이썬)
2025.05.02https://www.acmicpc.net/problem/11401풀이이게 어떻게 정답률이 40%?이 문제는 조금 어렵다. 모듈로 연산(1000000007)이 포함된 큰 수의 이항계수를 다루기 때문에, 단순한 팩토리얼 연산으로는 시간 초과가 일어난다.입력으로는 정수 N, K가 들어오소, 수가 크므로 모듈로 연산이 필요하고, 나눗셈은 페르마의 소정리를 이용해야한다.먼저 이항 계수 공식은 다음과 같다.하지만 단순한 팩토리얼 계싼은 값이 너무 커져 오버플로우가 발생하거나 시간초과가 발생한다.따라서, 문제에서 요구한 1000000007로 모듈로 연산을 적용해야 한다.왜 일반적인 나눗셈이 안되는 건가요?→ 일반적으로 모듈러 연산에서는 나눗셈이 직접 불가능하다. → 대신 모둘러 역원을 이용해야한다.페르마의 소정리는..
[브론즈 4] 백준 14470 - 전자레인지 (파이썬)
[브론즈 4] 백준 14470 - 전자레인지 (파이썬)
2025.05.02https://www.acmicpc.net/problem/14470풀이음식의 초기 온도 A에서 목표 온도 B까지 가열해야 한다.조건에 따라 걸리는 시간이 다르다.냉동 상태(0°C 미만)은 1도 올리는 데 C초 걸림.0°C에서 해동하는 데 D초 소모.해동된 후(0도 이상) 1도 올리는 데 E초 걸림.if A 초기 상태가 냉동 상태이고, 목표도 냉동 상태인 경우에는 단순히 A부터 B까지 C초로만 가열한다.elif A 0: print(-A * C + D + B * E)A를 0까지 올리는데 -A * C초가 필요로 한다.그 다음, 0도에서 해동하는데 D초가 걸리고, 해동 후 B도 까지 올리는데 B * E초가 걸린다.총시간을 수식으로 나타내면 -A * C + D + B * E 초가 소요된다.else: ..
[실버 1] 백준 1713 - 후보 추천하기 (파이썬)
[실버 1] 백준 1713 - 후보 추천하기 (파이썬)
2025.05.01https://www.acmicpc.net/problem/1713풀이사진틀이 N개 있다.총 M명의 추천이 차례로 주어진다.이미 사진틀에 있는 학생은 추천 수만 증가한다.사진틀에 자리가 없으면,추천 수가 가장 적은 사람을 사진틀에서 제거만약 추천 수가 같으면 가장 오래된 사람을 제거마지막에 사진틀에 걸려 있는 학생 번호를 오름차순 출력count = [0] * 100 # 학생별 추천 수 (인덱스 = 학생 번호 - 1)last = [-1] * 100 # 학생별 마지막 추천받은 시간 (인덱스 = 학생 번호 - 1)학생 번호는 1 ~ 100까지 가능하다.count[i] 는 i번 학생의 추천수를 나타낸다.last[i]는 i번 학생이 사진틀에 걸린 시간을 나타낸다.for i in range(M): C[i] ..
[브론즈 2] 백준 1173 - 운동 (파이썬)
[브론즈 2] 백준 1173 - 운동 (파이썬)
2025.05.01https://www.acmicpc.net/problem/1173풀이현재 맥박 : m, 최대 맥박 : M운동 할 때마다 맥박 T만큼 증가쉬면 맥박 R만큼 감소운동을 N번 해야한다.현재 맥박이 M을 초과하면 운동을 못한다.운동을 못할 때는 쉬어야한다.운동 N번을 완료하는 데 걸리는 시간을 출력하고,만약 아예 운동을 못 시작하는 상황이면 -1을 출력한다.if m + T > M : print(-1)현재 맥박 m에 운동 후 증가량 T를 더했을 때, M을 넘으면,아예 한 번도 운동할 수 없기에 -1을 출력하고 종료한다.else : timer = 0 X = m while N > 0 : timer += 1타이머를 0으로 초기화 하고, 현재 맥박 X를 m으로 초기화한다.운동을 N번 해..