전체 글 166

[baekjoon] 백준 1676번 : 팩토리얼 0의 개수 (by python 파이썬)

https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 정답 code import sys input = sys.stdin.readline n = int(input()) cnt = 0 while n>= 5: cnt += n//5 n //= 5 print(cnt) 짧은 정답 code n = int(input()) print(n//5 + n// 25 + n// 125) 이번문제는 문제를 이해하는데 어려움이 있었다. 문제가 원하는 바는 팩토리얼을한 결과값에서 뒤에서부터 0의 갯수를 세는 문제였다 처음엔 재귀함수로 팩토리얼을 구현한다음에 세려고 ..

[baekjoon] 백준 1620번 : 나는야 포켓몬 마스터 이다솜 (by python 파이썬)

https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 정답 code #나는야 포켓몬 마스터 이다솜 import sys n, m = map(int,input().split()) #n:포켓몬갯수 m:문제갯수 pocketmon = {} key = {} for i in range(n): name = sys.stdin.readline().strip() pocketmon[i] = name key[name] = i for _ in r..

카테고리 없음 2022.05.01

[baekjoon] 백준 1541번 : 잃어버린 괄호 (by python 파이썬)

https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 정답 code m = input().split('-') num = [] for i in m: cnt = 0 s = i.split("+") for j in s: cnt += int(j) num.append(cnt) sum = num[0] for i in range(1,len(num)): sum -= num[i] print(sum) 이번 문제는 *문자열.split(‘구분자’) 기능을 잘활용하면 ..

[baekjoon] 백준 1463번 : 1로 만들기 (by python) dp

https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 정답 code n = int(input()) dp = [0] * (n+1) #0부터 x까지 연산횟수 저장 for i in range(2,n+1): dp[i] = dp[i-1]+1 # 2,3으로 나누어지지 않을경우 전 수의 경우의수 +1 문제조건 3경우 if i % 2 == 0: #문제조건 2의 경우: 앞서 저장했던 3조건과 비교후 더 작은수 저장 dp[i] = min(dp[i],dp[i//2]+1) if i % 3 == 0: #문제조건 1의 경우: 앞서 저장했던 3,2조건중에 더작은수와 비교후 저장 dp[i] ..

[baekjoon] 백준 1389번 : 케빈 베이컨의 6단계 법칙 (by python 파이썬) bfs

https://www.acmicpc.net/problem/1389 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net 정답 code # 케빈 베이컨의 6단계 법칙 from collections import deque def bfs(num, n): bacon = [0]*(n+1) #케빈베이컨수 계산 visited = [num] #방문 숫자 기억 queue = deque() queue.append(num) while queue: k = queue.popleft() fo..

[baekjoon] 백준 1260 번 : DFS와 BFS (by python 파이썬)

https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 정답 code #DFS 와 BFS from collections import deque import sys input = sys.stdin.readline def dfs(v): print(v, end = ' ') visit[v] = True for i in graph[v]: if visit[i] == False: dfs(i) def bfs(n): visit[n..

[baekjoon] 백준 1107번 : 리모컨 (by python 파이썬)

https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 정답 code target = int(input()) ans = abs(100-target) # + or -로만 이동할때 (최대값) m = int(input()) if m: #고장난게 있을경우에만 input 실행 b = set(input().split()) else: b = set() for num in range(1000001): for n in str(num): if n in ..

[baekjoon] 백준 1074번 : z (by python 파이썬)

https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 정답 code #z n,r,c = map(int,input().split()) ans = 0 while n !=0 : n -= 1 #1사분면 if r= 2**n: ans += (2**n)*(2**n)*1 c -= (2**n) #3사분면 elif r >= 2**..

[baekjoon] 백준 1012번 : 유기농 배추 (by python 파이썬) bfs 너비우선 탐색

https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 정답 code t = int(input()) dx = [1,-1,0,0] #x축이동 dy = [0,0,-1,1] #y축이동 def bfs(x, y): queue = [[x, y]] while queue: a, b = queue[0][0], queue[0][1] del queue[0] for i in range(4): #좌우상하 검색 q = a + dx[i] w = b + dy[i] if 0

[baekjoon]백준 1003번 : 피보나치 함수 (by python 파이썬)

https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 정답 code t = int(input()) for _ in range(t): f0 = [1,0] f1 = [0,1] n = int(input()) if n>1: for i in range(n-1): f0.append(f1[-1]) f1.append(f0[-2]+f1[-1]) print(f0,f1) print(f0[n],f1[n]) 시간초과 code import sys input = sys.stdin.readline def fibonacci(n): global zcount, ocount if ..