본문 바로가기
반응형

알고리즘250

[백준][Python] 2553번 마지막 팩토리얼 수 2553번: 마지막 팩토리얼 수 첫째 줄에 N이 주어진다. N은 20,000보다 작거나 같은 자연수 이다. www.acmicpc.net 코드 n = int(input()) ans = 1 for i in range(1,n+1): ans *= i ans = str(ans) for i in range(len(ans)-1,-1,-1): if int(ans[i]) != 0: print(ans[i]) break 설명 팩토리얼 계산 값 ans를 string형으로 변환한 후 뒤에서부터 하나씩 비교를 해서 0이 아닌 경우 해당 값을 출력해준다. string을 뒤집는 방법이 생각이 안나서 for문을 이용해서 뒤에부터 확인하는 방법을 썼다. ans = str(ans)[::-1] 구글링 해서 찾았는데 이제 기억이 났다. . . 2022. 9. 16.
[백준][Python] 2606번 바이러스 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 코드 from collections import defaultdict def dfs(s): global cnt v.add(s) for i in virus[s]: if i not in v: cnt += 1 dfs(i) cnt = 0 com = int(input()) conn = int(input()) virus = defaultdict(list) v = set() for i in range(conn): a,b = map(int,input().split()) virus[.. 2022. 9. 15.
[백준][Python] 19583번 싸이버개강총회 19583번: 싸이버개강총회 첫번째 줄에는 개강총회를 시작한 시간 S, 개강총회를 끝낸 시간 E, 개강총회 스트리밍을 끝낸 시간 Q가 주어진다. (00:00 ≤ S < E < Q ≤ 23:59) 각 시간은 HH:MM의 형식으로 주어진다. 두번째 줄부터는 www.acmicpc.net 코드 import sys start,end,stream = input().split() start = 60*int(start[:2]) + int(start[3:]) end = 60*int(end[:2]) + int(end[3:]) stream = 60*int(stream[:2]) + int(stream[3:]) att = set() cnt = 0 while 1: try: time, user = sys.stdin.readline.. 2022. 9. 14.
[백준][Python] 4134번 다음 소수 4134번: 다음 소수 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. www.acmicpc.net 코드 import math def prime(a): for i in range(2,int(math.sqrt(a))+1): if a % i == 0: return False # 소수 아님 return True num = int(input()) for i in range(num): a = int(input()) if a < 2: print(2) else: while 1: if prime(a): print(a) break a+=1 설명 math.sqrt()를 이용하여 소수인지 확인하는 범위를 해당 숫자의 제곱근으로 줄이면 시간이 단축된다. 주어진 숫.. 2022. 9. 13.
반응형