input: 두 문자열 output: 겹치는 최장 길이 문자열 LCS: Longest Common Subsequence 백준에서 LCS문제를 풀게 되었는데 이것 자체가 하나의 알고리즘이라고 해서 정리하게 되었다. LCS는 DP기반의 알고리즘이고, Subsequence이므로 꼭 연속은 아니어도 된다. 부분부분 잘라서 존재하기만 해도 ㄱㅊ 백준에서 들은 예는 다음과 같다. ACAYKP CAPCAK 에서 LCS는 ACAK이다. 이렇게 세팅해놓고 시작한다. 글자가 같을때는 그 전줄전의값 + 1 해서 넣어주면 되는데, 다를때는 윗줄과 옆칸을 비교해서 더 큰값을 넣어준다. 코드 !! import sys str1 = sys.stdin.readline().rstrip('\n') str2 = sys.stdin.readl..
www.w3schools.com/python/python_howto_reverse_string.asp How to reverse a String in Python How to Reverse a String in Python Learn how to reverse a String in Python. There is no built-in function to reverse a String in Python. The fastest (and easiest?) way is to use a slice that steps backwards, -1. Example Reverse the string "Hello World": txt www.w3schools.com str[::-1]
arr.index(value=aa)
# 9663번 N-Queen import sys N = int(sys.stdin.readline()) data = [[0]*N for _ in range(N)] count = 0 check_col = [0]*N check_diag = [0]*(2*N-1) check_diag2 = [0]*(2*N-1) def check(row, col): if check_col[col] == 1: return False elif check_diag[row+col]==1: return False elif check_diag2[row-col + (N-1)] == 1: return False else: return True def dfs(row): global count if row == N: count += 1 return ..
모든 점을 다 방문해보아야 하는 DFS와 달리, BFS로 찾은 경로는 도착점이 나오는 즉시 최단거리임을 알 수 있어서 바로 종료할 수 있는 장점이 있다. 따라서 최단거리를 구하는 문제에서는 BFS를 쓰는것이 좋다. 코드를 어떻게 짤까 복잡하게 생각했었는데 bfs()를 콜 하고 제일 먼저 도착점과 같아질 때 끝인것이었다..! 백준 2178번을 풀이하면서 작성한 코드는 다음과 같다. # 2178번 미로 탐색 # bfs로 탐색해서 제일 먼저 끝점이랑 같아질 때 리턴. import sys N, M = map(int, sys.stdin.readline().split()) data = [] for _ in range(N): data.append([int(d) for d in str(sys.stdin.readline..
in Pypy # 2667번 단지번호붙이기 # BFS로 풀기 import sys N = int(sys.stdin.readline()) data = [] for _ in range(N): data.append([int(d) for d in str(sys.stdin.readline().rstrip())]) # print(data) queue = [] groupList = [] def bfs(row, col): queue.insert(0, [row, col]) while queue: current = queue.pop() newRow = current[0] newCol = current[1] # 이웃 찾기 for a in [-1, 1]: if 0
오랜만에 iOS외주를 하게 됐는데, 이런식으로 겹치는 원형 이미지가 필요한 부분이 있었다. 이런식으로 stackView에 넣어서 distribution을 fill equally로 하고, spacing을 음수로 줘서 해결할 수 있어서 간단할거라고 생각했는데 저 이미지를 렌더링 하는 부분에서 UIImage 형태로만 원해서 아예 Image를 편집해서 넣어야 하게 되었다. 그래서 이 글 을 참조해서 아예 코드를 새로 짜게 되었다. let bottomImage = UIImage(systemName: "folder.circle.fill") let topImage = UIImage(systemName: "doc.circle.fill") // 새로운 이미지의 사이즈 let size = CGSize(width: 35, ..