코테용 문제풀이/백준
연산자 끼워넣기 풀이
문제 링크: https://www.acmicpc.net/problem/14888 백준 알고리즘 중급 1/3 521에서 3번째 - 14888번 연산자 끼워넣기를 풀어보았다. 풀이: https://velog.io/@kimdukbae/BOJ-14888-%EC%97%B0%EC%82%B0%EC%9E%90-%EB%81%BC%EC%9B%8C%EB%84%A3%EA%B8%B0-Python 를 참고했다. C++ Python def dfs(dep,tot,pl,mi,mu,di): global maxs,mins if dep==n: maxs=max(tot,maxs) mins=min(tot,mins) return if pl: dfs(dep+1,tot+nums[dep],pl-1,mi,mu,di) if mi: dfs(dep+1,tot..
단어 수학 풀이
문제 링크: https://www.acmicpc.net/problem/1339 백준 알고리즘 중급 1/3 521에서 2번째 - 1339번 단어 수학을 풀어보았다. 풀이: https://velog.io/@dding_ji/baekjoon-1339 를 참고했다. C++ Python n=int(input()) alpha=[0 for i in range(26)] for i in range(n): inp=input().rstrip() for j in range(len(inp)): alpha[ord(inp[j])-ord('A')]+=10**(len(inp)-j-1) alpha.sort() res=0 num=9 for i in range(25,0,-1): if alpha[i]==0 or num
1967번 트리의 지름 풀이
문제 링크: https://www.acmicpc.net/problem/1967 백준 알고리즘 기초 2/2 620에서 5번째 - 1967번 트리의 지름을 풀어보았다. 풀이: https://kyun2da.github.io/2021/05/04/tree's_diameter/ 를 참고했다. C++ Python import sys sys.setrecursionlimit(10**9) def dfs(st,p): for i in tree[st]: a,b=i if dis[a]==-1: dis[a]=p+b dfs(a,p+b) n=int(input()) tree=[[] for i in range(n+1)] for i in range(n-1): a,b,c=map(int,input().split()) tree[a].append(..
1167번 트리의 지름 풀이
문제 링크: https://www.acmicpc.net/problem/1167 백준 알고리즘 기초 2/2 620에서 4번째 - 1167번 트리의 지름을 풀어보았다. 풀이: https://velog.io/@coding_egg/%EB%B0%B1%EC%A4%80-1991%EB%B2%88-%ED%8A%B8%EB%A6%AC%EC%9D%98-%EC%A7%80%EB%A6%84-python-%ED%8C%8C%EC%9D%B4%EC%8D%AC 를 참고했다. C++ Python from collections import deque def bfs(st): visit=[-1]*(v+1) q=deque() q.append(st) visit[st]=0 maxs=[0,0] while q: b=q.popleft() for n,m in..
트리의 부모 찾기 풀이
문제 링크: https://www.acmicpc.net/problem/11725 백준 알고리즘 기초 2/2 620에서 3번째 - 11725번 트리의 부모 찾기를 풀어보았다. 풀이: https://my-coding-notes.tistory.com/284 를 참고해 dfs로 풀었다. C++ Python import sys sys.setrecursionlimit(1000000) def dfs(st,p): for i in tree[st]: if p[i]==0: p[i]=st dfs(i,p) n=int(input()) tree=[[] for i in range(n+1)] par=[0 for i in range(n+1)] for i in range(n-1): a,b=map(int,input().split()) tr..
트리의 높이와 너비 풀이
문제 링크: https://www.acmicpc.net/problem/2250 백준 알고리즘 기초 2/2 620에서 2번째 - 2250번 트리의 높이와 너비를 풀어보았다. 풀이: https://imzzan.tistory.com/196 C++ Python def inorder(node,level): global dist if n_list[node][0] != -1: inorder(n_list[node][0],level+1) distance[level].append(dist) dist += 1 if n_list[node][1] != -1: inorder(n_list[node][1],level+1) n = int(input()) n_list = [[0,0] for _ in range(n+1)] distance..
트리 순회 풀이
문제 링크: https://www.acmicpc.net/problem/1991 백준 알고리즘 기초 2/2 620에서 1번째 - 1991번 트리 순회를 풀어보았다. 풀이: https://velog.io/@ohk9134/백준-1991번-트리-순회-python-트리-구현 를 참고했다. C++ Python def pre(t): if t != '.': print(t, end='') pre(tree[t][0]) pre(tree[t][1]) def ino(t): if t != '.': ino(tree[t][0]) print(t, end='') ino(tree[t][1]) def pos(t): if t != '.': pos(tree[t][0]) pos(tree[t][1]) print(t, end='') n = int(..
알고스팟 풀이
문제 링크: https://www.acmicpc.net/problem/1261 백준 알고리즘 기초 2/2 610에서 5번째 - 1261번 알고스팟를 풀어보았다. 풀이: https://velog.io/@aonee/%EB%B0%B1%EC%A4%80-boj-1261-%EC%95%8C%EA%B3%A0%EC%8A%A4%ED%8C%9F-%ED%8C%8C%EC%9D%B4%EC%8D%AC 를 참고했다. C++ Python from collections import deque def bfs(): dx=[-1,1,0,0] dy=[0,0,-1,1] q=deque() q.append((0,0)) visited[0][0]=0 while q: x,y=q.popleft() for i in range(4): nx=x+dx[i] ny..
숨바꼭질 3 풀이
문제 링크: https://www.acmicpc.net/problem/13549 백준 알고리즘 기초 2/2 610에서 4번째 - 13549번 숨바꼭질 3을 풀어보았다. 풀이: https://jshong1125.tistory.com/29 C++ Python from collections import deque n, k = map(int, input().split()) q = deque() q.append(n) visited = [-1 for _ in range(100001)] visited[n] = 0 while q: s = q.popleft() if s == k: print(visited[s]) break if 0
이모티콘 풀이
문제 링크: https://www.acmicpc.net/problem/14226 백준 알고리즘 기초 2/2 610에서 3번째 - 14226번 이모티콘을 풀어보았다. 풀이: https://yunaaaas.tistory.com/83 를 참고했다. C++ Python from collections import deque def bfs(a): q=deque() q.append((1,0)) visited[1][0]=0 while q: a,b=q.popleft() if visited[a][a]==-1: visited[a][a]=visited[a][b]+1 q.append((a,a)) if a+b=1 and visited[a-1][b]==-1: q.append((a-1,b)) visited[a-1][b]=visite..