목록백준 python 기록 (69)
작은 지식주머니

백준 링크:https://www.acmicpc.net/problem/1431 1431번: 시리얼 번호 첫째 줄에 기타의 개수 N이 주어진다. N은 1,000보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루 www.acmicpc.net python에 내장된 sort()와 lambda를 사용하면 간단하게 정렬할 수 있다. n = int(input()) def sum_num(tmp): result = 0 for i in tmp: if i.isdigit(): result += int(i) return result li=[] for i in range(n): a = list(input()) li.append(a) l..

백준 링크:https://www.acmicpc.net/problem/1699 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net 그리드 문제인줄 알고 도전했다가 실패했던 문제다. dp를 사용하면 오류없이 도출가능 각 제곱수인 1,4,9 ''' 316 까지의 수를 저장해놓은 matrix를 사용해서 그 수가 나온만큼 뒤로 백하면 된다. import math n=int(input()) # 16까지 [0,1,2,3,1,2,3,4,2,1,2,3,3.2,3,4,1] 변하는수 =[4,8..

백준 링크:https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net dp문제다. 패턴을 잘 찾으면 dp[n-3]+dp[n-4]+dp[n-5] 하면 다음 값이 나온다. 풀이코드: tc=int(input()) for i in range(tc): dp = [0, 1, 1, 1, 2, 2] n = int(input()) for i in range(6,n+1): dp.append(dp[i-3]+dp[i-4]+dp[i-5]) print(dp[n])

백준 링크:https://www.acmicpc.net/problem/9657 9657번: 돌 게임 3 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 완벽하게 게임을 하라니 그걸 어케 내가 정하는거지? 라고 생각했었다. 하지만 이 게임 선공이 매우 유리하다! 5부터는 SK가 2를 만들 수 있는가 없는가에 따라 게임이 결정된다. 따라서 이런식으로 결정된다. 7 이후부터는 8이 7을 만들수 있는가 없는가에 따라 만들면된다. 풀이코드: n=int(input()) dp=[1,1,0,1,1] for i in range(5,n+1): if dp[i-1] == 0 or dp[i-3] == 0 or dp[i-4] == 0: dp.append(1) else: dp.a..

백준 링크:https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 간단한 정렬문제이다. 파이썬은 그냥 내장함수를 쓰면 간단하게 풀수있다. 풀이 코드: n=int(input()) li=sorted(list(map(int,input().split()))) sum_num=[] for i in range(n): if len(sum_num) == 0: sum_num.append(li[i]) else: sum_num.append(sum_num[i-1]+li[i]) print(sum(sum_n..

백준 링크 : https://www.acmicpc.net/problem/1051 1051번: 숫자 정사각형 N*M크기의 직사각형이 있다. 각 칸은 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 또는 www.acmicpc.net 간단한 브루트포스 문제라고 생각했다. n,m의 최소값이 정사각형의 최댓값이니 처음부터 잡고 밑으로 늘려보며 전부 체크해보면 된다. 풀이 코드 n,m=map(int,input().split()) result=[] box=[ list(input()) for i in range(n)] min_num=min(n,m) for i in range(n): for j in range(m): f..

백준 링크:https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net dfs와 bfs 둘다 가능한 문제이다. dfs 풀이 import sys sys.setrecursionlimit(100000) def dfs(x,y): dx,dy=[0,0,1,-1],[1,-1,0,0] for i in range(4): nx,ny=x+dx[i],y+dy[i] if (0

백준 링크 : https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net DFS와 BFS의 기본적인 문제였다. 이건 DFS와 BFS에 대한 기본적인 지식을 습득하고 도전해야한다. DFS는 깊이우선탐색. 동굴을 넓히듯이 탐색하는 느낌이다. BFS는 부채꼴로 펼치듯이 탐색하는 느낌. 나는 구글에서 검색해서 따로 공부했었다. https://devuna.tistory.com/32 이런 사이트 등등 매우 자세히 설명해주신 분들..