Algorithm

Algorithm/Python

[백준] 2468 안전 영역

https://www.acmicpc.net/problem/2468 dfs를 통해 물 높이별 영역의 수를 찾아내는 것이 주요 내용이다.import syssys.setrecursionlimit(10**6)input= sys.stdin.readlinen = int(input())graph=[]max_height=0min_height=100for _ in range(n): arr = list(map(int, input().split())) max_height = max(max_height, max(arr)) min_height = min(min_height, min(arr)) graph.append(arr)cnt=[n*n]max_area=1mv = [(-1,0),(1,0),(0,-1),(0..

Algorithm/Python

[백준] 2573 빙산

https://www.acmicpc.net/problem/2573import syssys.setrecursionlimit(10**6)input=sys.stdin.readlinen,m=map(int, input().split())graph=[[0 for _ in range(m)] for _ in range(n)]ice = [] # 빙하 좌표for i in range(n): arr = list(map(int, input().split())) for j in range(m): if arr[j]>0: ice.append([i,j,arr[j]]) # y, x, 값 graph[i][j] = arr[j]mv = [(-1,0),(1,0),(0,-1),(0,..

Algorithm/Python

[백준] 11444 피보나치 수 6

https://www.acmicpc.net/problem/11444단순 DP만을 사용해서는 시간초과로 인해 풀 수 없다. DP와 다른 방법을 같이 사용해야 한다.아래는 시간초과되는 코드이다.import sysinput= sys.stdin.readlinen = int(input())arr = [0,1]for _ in range(n-1): arr[0],arr[1] = arr[1], (arr[0]+arr[1])%1000000007if n==1: print(0)else : print(arr[1]) https://velog.io/@kjy2134/%EB%B0%B1%EC%A4%80-11444-%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98-%EC%88%98-%ED%8C%8C%EC%9D%B4%E..

Algorithm/Python

[백준] 12891 DNA 비밀번호

https://www.acmicpc.net/problem/12891import sysinput = sys.stdin.readlines, p = map(int, input().split()) #문자열 길이, 부분문자열 길이arr = list(input().rstrip())check = list(map(int, input().split()))chars = {'A':0, 'C':1, 'G':2, 'T':3}ans=0for x in arr[:p]: check[chars[x]]-=1 if max(check)

Algorithm/Python

[백준] 1655 가운데를 말해요

https://www.acmicpc.net/problem/1655시간초과 시 PyPy3 쓰세요import heapqsmaller = [] # 중간값 이하의 값들 -> - 붙여서 저장bigger = [] # 중간값 초과의 값들def insert(num): if not smaller or num len(bigger)+1: heapq.heappush(bigger, -heapq.heappop(smaller)) elif len(bigger) > len(smaller): heapq.heappush(smaller, -heapq.heappop(bigger)) def get_median(): return -smaller[0] # 작은 값들 중 가장 큰 값n = int(inp..

Algorithm/Python

[백준] 2493 탑

https://www.acmicpc.net/problem/2493O(n^2)의 시간 복잡도로 이중 for문을 사용하면 시간초과가 되므로, 다른 방법을 사용해야 한다.# 시간복잡도 초과import sysinput = sys.stdin.readlinen = int(input())height = list(map(int, input().split()))ans = [0 for _ in range(n)]for i in range(n-1, -1, -1): for j in range(i-1, -1, -1): if height[i] 모노토닉 스택을 사용한 답변https://popsapple.tistory.com/86 모노토닉 스택 / 백준 2493 탑https://www.acmicpc.net/probl..

Algorithm/Python

[백준] 10825 국영수

https://www.acmicpc.net/problem/10825 `sort()`와 `lambda`의 `key`를 사용하여, 주어진 조건의 순서대로 정렬이 가능하다.기본적으로 정렬은 ascending, 즉 오름차순이 기본값이기 때문에 내림차순으로 정렬하고 싶다면 lambda 사용 시 `-`를 붙여서 진행하면 된다.import sysinput = sys.stdin.readlinen = int(input())# 국어 감소, 영어 증가, 수학 감소, 이름 증가arr = []for _ in range(n): name, kor, eng, math= input().split() arr.append([int(kor), int(eng), int(math), name])arr.sort(key=lambda x..

Algorithm/Python

[백준] 2644 촌수계

https://www.acmicpc.net/problem/2644import sysinput = sys.stdin.readlinen = int(input())a,b = map(int, input().split())m = int(input())adj = [[] for _ in range(n+1)]for _ in range(m): x, y = map(int, input().split()) adj[x].append(y) adj[y].append(x)visited = [False for _ in range(n+1)]visited[a]=Trueans=-1def dfs(now, l, visited): if now==b: global ans ans = l ..

Algorithm/Python

[백준] 1904 01타일

https://www.acmicpc.net/problem/1904 DP 문제로, https://www.acmicpc.net/problem/11726위의 문제와 로직이 동일하다! 현재 가능한 가짓수에서, 마지막 칸들은 00이거나 1 두 가지이다.따라서 마지막 두 칸을 00이라고 고정하면, 두 칸 전의 가짓수만을 고려하면 된다.마찬가지로 마지막 한 칸을 1으로 고정하면, 한 칸 전의 가짓수만을 고려하면 된다.두 가지 상황을 더했을 때, 현재 칸에서 가능한 가짓수들을 구할 수 있다. 이 것을 반복하면 되는데, 해당 문제는 메모리 제한이 있으므로 한칸 전, 두 칸 전 상황의 가짓수만을 저장하는 길이가 2인 배열을 사용하여 DP를 수행하면 된다. 또한 문제의 조건에서 볼 수 있듯이, 15746으로 나눈 나머지를 ..

Algorithm/Python

[백준] 15651 N과 M (3)

https://www.acmicpc.net/problem/15651 중복되는 숫자도 가능하다는게, 이전 숫자와 관계없이 1~N까지 뽑을 수 있다는 것이다!!따라서 수열의 길이만 고려해주면 된다.다른 N과 M 문제들보다 쉬운 것 같다.import sysinput = sys.stdin.readlinen,m = map(int, input().split())# 1~n 자연수 중 m개 고른 수열, 같은 수 여러번 가능# 순서는 사전 순으로 증가arr = []def dfs(len): if len == m: print(*arr) else: for x in range(1, n+1): arr.append(x) dfs(len+1) if ar..

yoursin
'Algorithm' 카테고리의 글 목록 (3 Page)