[Baekjoon] 백준 11048 이동하기 Python
·
🔻PS/Baekjoon
https://www.acmicpc.net/problem/11048 ❗풀이방법1행과 1열은 누적합 계산(1, 1)에서부터 DP 계산max(graph[i-1][j], graph[i][j-1], graph[i-1][j-1]) 계산 후 (i, j)에 합하기 ❗코드import sysinput = sys.stdin.readlinen, m = map(int, input().split(" "))graph = []for _ in range(n): temp = list(map(int, input().split(" "))) graph.append(temp)for i in range(1, n): graph[i][0] += graph[i-1][0]for i in range(1, m): graph[0][..
[Baekjoon] 백준 20056 마법사 상어와 파이어볼 Python
·
🔻PS/Baekjoon
https://www.acmicpc.net/problem/20056 ❗풀이방법각 단계별 new_graph 생성nx, ny는 음수 발생을 방지하기 위해 +n 후에 %n각 위치에 요소가 2개 이상 담겨있는 경우에 파이어볼을 4개로 분할graph를 new_graph로 업데이트 ❗코드import sysinput = sys.stdin.readlinen, m, k = map(int, input().split(" "))graph = [[[] for _ in range(n)] for _ in range(n)]dx = [-1, -1, 0, 1, 1, 1, 0, -1]dy = [0, 1, 1, 1, 0, -1, -1, -1]for _ in range(m): r, c, m, s, d = map(int, input()...
[Baekjoon] 백준 20922 겹치는 건 싫어 Python
·
🔻PS/Baekjoon
https://www.acmicpc.net/problem/20922 import sysinput = sys.stdin.readlinen, k = map(int, input().split(" "))num = list(map(int, input().split(" ")))counter = [0 for _ in range(max(num)+1)]max_val = 0start = 0end = 0while end k: counter[num[start]] -= 1 start += 1 max_val = max(max_val, end - start + 1) end += 1print(max_val)
[Baekjoon] 백준 1806 부분합 Python
·
🔻PS/Baekjoon
https://www.acmicpc.net/problem/1806 import sysfrom collections import Counterinput = sys.stdin.readlinen, s = map(int, input().split(" "))num = list(map(int, input().split(" ")))sum = num[0]start = 0end = 0min_val = 100000000000while True: if sum >= s: min_val = min(min_val, end-start+1) sum -= num[start] start += 1 else: end +=1 if end == n: ..
[Baekjoon] 백준 20920 영단어 암기는 괴로워 Python
·
🔻PS/Baekjoon
https://www.acmicpc.net/problem/20920 import sysfrom collections import Counterinput = sys.stdin.readlinen, m = map(int, input().split(" "))word = []for _ in range(n): temp = input().rstrip() if len(temp) >= m: word.append(temp)counter = dict(Counter(word))sorted_counter = sorted(counter.items(), key=lambda x:(-x[1], -len(x[0]), x[0]))for word in sorted_counter: print(word[0])
[Baekjoon] 백준 1138 한 줄로 서기 Python
·
🔻PS/Baekjoon
https://www.acmicpc.net/problem/1138 ❗풀이방법line에서 빈자리인지 먼저 확인cnt(지나온 자리 수)와 order(앞에 비워둘 자리 수) 일치하면 line에 배치아니라면 cnt를 하나 늘려줌 ❗코드import sysinput = sys.stdin.readlinen = int(input())arr = list(map(int, input().split(" ")))line = [0 for _ in range(n)]for i, order in enumerate(arr): cnt = 0 for j in range(n): if line[j] == 0: if order ==cnt: line[j] = i+1 ..
[Baekjoon] 백준 2533 랭킹전 대기열 Python
·
🔻PS/Baekjoon
https://www.acmicpc.net/problem/20006 ❗풀이방법이중 for문 사용현재 룸의 레벨에 맞는지와 정원이 다 찼는지 확인하기확인 후 현재 룸에 사람을 넣었다면 flag를 True로 변경현재 사람이 아무데도 들어가지 못했다면 새로운 방 생성각 룸에 누가 있는지 출력 시 닉네임을 기준으로 정렬 후 출력 ❗코드import sysinput = sys.stdin.readlinep, m = map(int, input().split(" "))people = []rooms = []standard = []for _ in range(p): level, nickname = input().rstrip().split(" ") level = int(level) people.append([l..
[Baekjoon] 백준 2533 사회망 서비스(SNS) Python
·
🔻PS/Baekjoon
https://www.acmicpc.net/problem/2533 ❗풀이방법트리 기반 dp로 문제 풀이루트 노드인 정점 1에서 dfs 시작자식 노드부터 값을 계산하여 부모로 거슬러 오는 구조2가지 케이스부모 x, 자식 o부모 o, 자식 x or 자식 o ❗코드import syssys.setrecursionlimit(10**6)input = sys.stdin.readlinen = int(input())graph = [[] for _ in range(n+1)]visited = [0 for _ in range(n+1)]dp = [[0, 0] for _ in range(n+1)]# 얼리어댑터가 아닐 때0, 맞을 때1for _ in range(n-1): a, b = map(int, input().rstrip..
[Baekjoon] 백준 1043 거짓말 Python
·
🔻PS/Baekjoon
https://www.acmicpc.net/problem/1043 ❗풀이 방법파티의 입력 순서에 상관없이 같이 참석했다는 것을 기준으로 그래프 생성알고 있는 사람을 기준으로 dfs 실행해서 비밀을 아는 사람 체크각 파티에서 비밀을 아는 사람이 없어야 결과+1  ❗코드import sysinput = sys.stdin.readlinecnt = 0n, m = map(int, input().split())known = list(map(int, input().split()))[1:]graph = [[] for _ in range(n+1)]visited = [0 for _ in range(n+1)]party = []def dfs(v): visited[v] = 1 for i in graph[v]: ..
[Baekjoon] 백준 1780 종이의 개수 Python
·
🔻PS/Baekjoon
https://www.acmicpc.net/problem/1780 ❗접근 방법재귀로 범위를 좁히기종료 조건은 정해진 범위 내에 같은 숫자만 있을 경우 → check함수로 분리종료가 되지 않을 경우는 사이즈를 / 3하기새롭게 나뉜 9개의 부분을 for문과 새로운 사이즈를 사용해서 재귀 호출 ❗코드import sysinput = sys.stdin.readlinen = int(input())graph = []for _ in range(n): temp = list(map(int, input().rstrip().split(" "))) graph.append(temp)# -1로만, 0으로만, 1로만result = [0, 0, 0]def check(x, y, n): standard = graph[x]..
_니지
'🔻PS/Baekjoon' 카테고리의 글 목록 (2 Page)