본문 바로가기

전체 글

(104)
2023.01.18 피보나치 함수 백준[파이썬] https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net import sys input = sys.stdin.readline cases = int(input().strip()) numlist = [int(input().strip()) for _ in range(cases)] lists = [0,1] + [0]*(cases-1) for N in numlist: if N == 0: print(1, 0) continue lists = [0,1] + [0]*(N-1) for i in range(2, N+1): lists[i] = lists[i-1] + li..
2023.01.17 최대 힙 백준 [파이썬] https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net import sys from heapq import heappush as hh from heapq import heappop as hp input = sys.stdin.readline heap = [] N = int(input().strip()) for i in range(N): ip = int(input().strip()) if ip == 0: if heap: print(..
2023.01.17 팩토리얼 0의 개수[파이썬] https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net import sys N = int(sys.stdin.readline()) def zero_count(fac, counters = 0,sq = 2): counters += len(fac) if len(fac) < 5: return counters fac = list(filter(lambda x: x%(5**sq) == 0, fac)) return zero_count(fac,counters,sq +1) print(zero_count(list(range(0,N+1,5))[1:])) 쉽게만..
2023.01.17 1로 만들기 백준 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 처음에는 2의 제곱수가 아니면 3으로 나누는게 더 빠를 거라고 생각해서 코드를 짰지만 3으로 나누는 것보다 2 로 나누는게 더 빠른 반례를 찾아서 그 부분을 폐기하고 처음부터 계산하는 코드를 짰다. import sys def main(): N = int(sys.stdin.readline()) re_num = [ 0 for _ in range(N+1)] if N == 1: print(0) return for i in range(2,N+1): re_num[i] = re_num[i-1] + 1 if i % 2 == ..
2023.01.17 유기농 배추 백준 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net import sys input = sys.stdin.readline def main(): def dfs(i,j): nonlocal graph discovered = [[i,j]] while discovered: pos = discovered.pop() graph[pos[0]][pos[1]] = 0 next_pos = [[pos[0]+1,pos[1]],[pos[0]-1,pos[1]],[pos[0],pos[1]+..
2023.01.16 백준 DFS와 BFS https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net import sys from collections import defaultdict from collections import deque input = sys.stdin.readline def dfs(start,visited = []): visited.append(start) print(start,end=' ') for i in graph_dic[start]:..
프로그래머스 스킬 체크 레벨 2 통과! 예전에는 했어도 다 거의 한문제도 못 풀었는데 바로 2문제 다 풀어서 기분 좋다. 마지막 문제는 1분 20초 남기고 제출 해서 아슬아슬 하게 다 풀었다.! 3단계는 나중에 찍먹 해봐야지
2023.01.15 반복수열 백준(Python) https://www.acmicpc.net/problem/2331 2331번: 반복수열 첫째 줄에 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 출력한다. www.acmicpc.net import sys input = sys.stdin.readline def dfs(num,visited=[]): if num in visited: return visited[:visited.index(num)] visited.append(num) return dfs(seq(num),visited) def seq(a): return sum(map(lambda x: int(x) ** k,list(str(a)))) n , k = map(int,input().split()) print(len(dfs(n))) seq..