알고리즘 66

[baekjoon] 백준 2579번 : 계단 오르기 (by python)

https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 정답 code #계단오르기 import sys input = sys.stdin.readline n = int(input()) score = [0 for i in range(301)] dp = [0 for i in range(301)] for i in range(n): score[i] = int(input()) dp[0] = score[0] dp[1] = score[0] + score[1] dp[2] = max..

[baekjoon] 1780번 : 종이의 개수 (by python 파이썬)

https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수 www.acmicpc.net 정답 code #종이의 개수 n = int(input()) paper = [list(map(int,input().split())) for _ in range(n)] minues = 0 zero = 0 one = 0 def dfs(x,y,n): global minues, zero, one check = paper[x][y] for i in range(x,x+n): for j in rang..

[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] 백준 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..