코딩 테스트/Baekjoon
백준 온라인 져지 문제 중 풀이해본 문제들의 해결 과정과 코드를 공유하는 내용을 담습니다.
-
문제 보기 : 9251번: LCS 문제정답률 : 41%작성 코드# 입력값str1 = input() ; len1 = len(str1)str2 = input() ; len2 = len(str2)# DP 테이블 초기화dp = [[0]*(len2+1) for _ in range(len1+1)]# DP 계산for i in range(1,len1+1): for j in range(1,len2+1): if str1[i-1]==str2[j-1]: dp[i][j] = dp[i-1][j-1] + 1 else: dp[i][j] = max(dp[i-1][j],dp[i][j-1])print(dp[len1][len2])풀이1. 두 문자열의 길이에 맞는 DP ..
G5 9251. LCS문제 보기 : 9251번: LCS 문제정답률 : 41%작성 코드# 입력값str1 = input() ; len1 = len(str1)str2 = input() ; len2 = len(str2)# DP 테이블 초기화dp = [[0]*(len2+1) for _ in range(len1+1)]# DP 계산for i in range(1,len1+1): for j in range(1,len2+1): if str1[i-1]==str2[j-1]: dp[i][j] = dp[i-1][j-1] + 1 else: dp[i][j] = max(dp[i-1][j],dp[i][j-1])print(dp[len1][len2])풀이1. 두 문자열의 길이에 맞는 DP ..
2024.12.31 -
문제 보기 : 16953번: A → B 문제정답률 : 39%작성 코드# 입력값을 받음 (시작 값 n, 목표 값 m)n, m = map(int, input().split())answer = -1 # 결과 초기화visited = set() # 방문한 노드를 기록할 집합visited.add(n) # 시작 노드를 방문 처리from collections import dequedd = deque([(n, 1)]) # BFS를 위한 큐 (현재 값, 연산 횟수)while dd: now, cal = dd.popleft() # 큐에서 현재 값과 연산 횟수를 꺼냄 if now == m: # 목표 값에 도달한 경우 answer = cal # 결과에 연산 횟수 저장 br..
S2 16953. A → B문제 보기 : 16953번: A → B 문제정답률 : 39%작성 코드# 입력값을 받음 (시작 값 n, 목표 값 m)n, m = map(int, input().split())answer = -1 # 결과 초기화visited = set() # 방문한 노드를 기록할 집합visited.add(n) # 시작 노드를 방문 처리from collections import dequedd = deque([(n, 1)]) # BFS를 위한 큐 (현재 값, 연산 횟수)while dd: now, cal = dd.popleft() # 큐에서 현재 값과 연산 횟수를 꺼냄 if now == m: # 목표 값에 도달한 경우 answer = cal # 결과에 연산 횟수 저장 br..
2024.12.31 -
문제 보기 : 6603번: 로또 문제정답률 : 55%작성 코드while True: arr = input() # 입력을 받음 if arr == "0": # 입력이 "0"이면 종료 break arr = list(map(int, arr.split())) # 입력을 공백으로 분리하여 정수 리스트로 변환 n = arr.pop(0) # 첫 번째 값을 n으로 설정하고 리스트에서 제거 # 중복 없는 조합 생성 함수 def combinations(n, new, c): answer = [] if len(new) == n: # 조합의 길이가 목표(n)에 도달하면 반환 return [new] for i in ran..
S2 6603. 로또문제 보기 : 6603번: 로또 문제정답률 : 55%작성 코드while True: arr = input() # 입력을 받음 if arr == "0": # 입력이 "0"이면 종료 break arr = list(map(int, arr.split())) # 입력을 공백으로 분리하여 정수 리스트로 변환 n = arr.pop(0) # 첫 번째 값을 n으로 설정하고 리스트에서 제거 # 중복 없는 조합 생성 함수 def combinations(n, new, c): answer = [] if len(new) == n: # 조합의 길이가 목표(n)에 도달하면 반환 return [new] for i in ran..
2024.12.31 -
문제 보기 : 15657번: N과 M (8) 문제정답률 : 81%작성 코드n,m = map(int, input().split())arr = list(map(int, input().split())) # 입력을 정수 리스트로 변환arr = sorted(set(arr)) # 중복 제거 및 정렬arr.sort()# 중복 없는 조합 생성 함수def combinations_without_replacement(n,new,c): answer = [] if len(new)==n: return [new] for i in range(c,len(arr)): answer.extend(combinations_without_replacement(n,new+[arr[i]],i)) ..
S3 15657. N과 M (8)문제 보기 : 15657번: N과 M (8) 문제정답률 : 81%작성 코드n,m = map(int, input().split())arr = list(map(int, input().split())) # 입력을 정수 리스트로 변환arr = sorted(set(arr)) # 중복 제거 및 정렬arr.sort()# 중복 없는 조합 생성 함수def combinations_without_replacement(n,new,c): answer = [] if len(new)==n: return [new] for i in range(c,len(arr)): answer.extend(combinations_without_replacement(n,new+[arr[i]],i)) ..
2024.12.30 -
문제 보기 : 1991번: 트리 순회 문제정답률 : 67%작성 코드# 전위 순회: 현재 노드 → 왼쪽 자식 → 오른쪽 자식def preorder(node): if node == '.': # 자식이 없는 경우 return '' return node + preorder(tree[node][0]) + preorder(tree[node][1])# 중위 순회: 왼쪽 자식 → 현재 노드 → 오른쪽 자식def inorder(node): if node == '.': # 자식이 없는 경우 return '' return inorder(tree[node][0]) + node + inorder(tree[node][1])# 후위 순회: 왼쪽 자식 → 오른쪽 자식 → 현재 노드..
S1 1991. 트리 순회문제 보기 : 1991번: 트리 순회 문제정답률 : 67%작성 코드# 전위 순회: 현재 노드 → 왼쪽 자식 → 오른쪽 자식def preorder(node): if node == '.': # 자식이 없는 경우 return '' return node + preorder(tree[node][0]) + preorder(tree[node][1])# 중위 순회: 왼쪽 자식 → 현재 노드 → 오른쪽 자식def inorder(node): if node == '.': # 자식이 없는 경우 return '' return inorder(tree[node][0]) + node + inorder(tree[node][1])# 후위 순회: 왼쪽 자식 → 오른쪽 자식 → 현재 노드..
2024.12.29 -
문제 보기 : 9020번: 골드바흐의 추측 문제정답률 : 39% 작성 코드T = int(input())# 에라토스테네스의 체를 사용해 소수 판별 리스트 생성max_m = 10000 # 소수 계산의 최대값ari_map = [False,False]+[True]*(max_m-1)for i in range(2,max_m+1): if ari_map[i]: for j in range(2*i,max_m+1,i): ari_map[j]=Falsefor _ in range(T): n = int(input()) # n을 두 소수의 합으로 표현하기 위한 초기 값 설정 left = n//2 # 중간값부터 시작 (작은 소수) right = n//2 # 중간값부터 시작 ..
S2 9020. 골드바흐의 추측문제 보기 : 9020번: 골드바흐의 추측 문제정답률 : 39% 작성 코드T = int(input())# 에라토스테네스의 체를 사용해 소수 판별 리스트 생성max_m = 10000 # 소수 계산의 최대값ari_map = [False,False]+[True]*(max_m-1)for i in range(2,max_m+1): if ari_map[i]: for j in range(2*i,max_m+1,i): ari_map[j]=Falsefor _ in range(T): n = int(input()) # n을 두 소수의 합으로 표현하기 위한 초기 값 설정 left = n//2 # 중간값부터 시작 (작은 소수) right = n//2 # 중간값부터 시작 ..
2024.12.27 -
문제 보기 : 5430번: AC 문제정답률 : 20%작성 코드T = int(input())import sysimport refrom collections import dequeinput = sys.stdin.readlinefor _ in range(T): p = deque(input().rstrip()) # 함수 연산 문자열 n = int(input().strip()) # 배열의 크기 ls = deque(map(int,filter(None,re.split('[\[\],]',input().rstrip())))) reverse_flag = False # 뒤집기 상태를 관리 error_flag = False # 에러 여부를 관리 for function in p: ..
G5 5430. AC문제 보기 : 5430번: AC 문제정답률 : 20%작성 코드T = int(input())import sysimport refrom collections import dequeinput = sys.stdin.readlinefor _ in range(T): p = deque(input().rstrip()) # 함수 연산 문자열 n = int(input().strip()) # 배열의 크기 ls = deque(map(int,filter(None,re.split('[\[\],]',input().rstrip())))) reverse_flag = False # 뒤집기 상태를 관리 error_flag = False # 에러 여부를 관리 for function in p: ..
2024.12.27 -
문제 보기 : 1759번: 암호 만들기 문제정답률 : 44%작성 코드# 입력받기a, b = map(int, input().split()) # a: 만들 암호 길이, b: 알파벳 개수ls = list(input().split()) # 사용할 알파벳 리스트ls.sort() # 알파벳 정렬 (사전순 출력을 위해)# 모음과 자음을 구분left = [i for i in ls if i in ['a', 'e', 'i', 'o', 'u']] # 모음right = [i for i in ls if i not in ['a', 'e', 'i', 'o', 'u']] # 자음# 조합 생성 함수def combinations(arr, n, new, c): answer = [] # 원하는 길이(n)만큼 조합이 완..
G5 1759. 암호 만들기문제 보기 : 1759번: 암호 만들기 문제정답률 : 44%작성 코드# 입력받기a, b = map(int, input().split()) # a: 만들 암호 길이, b: 알파벳 개수ls = list(input().split()) # 사용할 알파벳 리스트ls.sort() # 알파벳 정렬 (사전순 출력을 위해)# 모음과 자음을 구분left = [i for i in ls if i in ['a', 'e', 'i', 'o', 'u']] # 모음right = [i for i in ls if i not in ['a', 'e', 'i', 'o', 'u']] # 자음# 조합 생성 함수def combinations(arr, n, new, c): answer = [] # 원하는 길이(n)만큼 조합이 완..
2024.12.23