목록Python (288)
홍우진의 개발새발
문제 링크https://www.acmicpc.net/problem/14584풀이 코드import sysinput = sys.stdin.readlineS = input().strip()N = int(input())# 딕셔너리 단어들을 set에 저장하면 탐색 속도가 빠릅니다.dictionary = {input().strip() for _ in range(N)}# 0부터 25까지 모든 key를 시도for key in range(26): # 평문 후보(candidate) 만들기 plaintext_candidate = "" for char in S: # 위에서 설명한 '알파벳 뒤로 밀기' 로직 shifted_code = (ord(char) - ord('a') - k..
문제 링크https://www.acmicpc.net/problem/12927풀이 코드import sysbulbs = list(sys.stdin.readline().strip())n = len(bulbs)cnt = 0# 0번 인덱스(1번 전구)부터 N-1번 인덱스(N번 전구)까지 순회for i in range(n): # i번 전구(실제로는 i+1번)가 켜져 있으면 if bulbs[i] == 'Y': # i+1번 스위치를 누른다 cnt += 1 # i+1의 배수 위치에 있는 모든 전구를 토글 # (i+1)번 스위치는 i, i+(i+1), i+2(i+1) ~ 인덱스의 전구를 토글 for j in range(i, n, i ..
문제 링크https://www.acmicpc.net/problem/1431풀이 코드import sysinput = sys.stdin.readlinedef get_digit_sum(serial): total = 0 for char in serial: # 문자가 숫자인지 확인 if char.isdigit(): total += int(char) return totalN = int(input())serials = []for _ in range(N): serials.append(input().strip())# sorted의 key에 lambda를 사용하여 3가지 기준을 튜플로 반환# (1 길이, 2 숫자 합, 3 사전순 원본 문자열)sorted_s..
문제 링크https://www.acmicpc.net/problem/11582풀이 코드import sysinput = sys.stdin.readlinen = int(input())arr = list(map(int, input().split()))k = int(input())# 덩어리 크기 계산chunk_size = n // k# 결과를 저장할 리스트result = []# 덩어리 크기만큼 건너뛰면서 반복for i in range(0, n, chunk_size): # 현재 덩어리(sub-array)를 슬라이싱 chunk = arr[i : i + chunk_size] chunk.sort() # 정렬된 덩어리를 결과 리스트에 추가 result.extend(chunk)print(*resu..
문제 링크https://www.acmicpc.net/problem/15654풀이 코드import sysfrom itertools import permutationsinput = sys.stdin.readlineN, M = map(int, input().split())nums = list(map(int, input().split()))# 사전 순 출력을 위해 입력 리스트를 먼저 정렬.nums.sort()# permutations(리스트, 뽑을 개수)를 호출해 모든 순열을 구함.results = permutations(nums, M)for res in results: print(*res)코드 해석itertools의 permutations 라이브러리를 사용하면 간단히 풀린다.permutations는 순열..
문제 링크https://www.acmicpc.net/problem/1822풀이 코드_, _ = map(int, input().split())A = set(map(int, input().split()))B = set(map(int, input().split()))print(len(A - B))print(*sorted(list(A - B)))코드 해석set 자료구조를 사용하면 간단하게 풀 수 있다. 체감 난이도: ☆☆☆☆☆
문제 링크https://www.acmicpc.net/problem/1004풀이 코드import sysinput = sys.stdin.readlinefor _ in range(int(input())): x1, y1, x2, y2 = map(int, input().split()) n = int(input()) count = 0 # 경계 통과 횟수 for _ in range(n): # 행성계의 중심 (cx, cy)와 반지름 r 입력 cx, cy, r = map(int, input().split()) # 출발점이 원 안에 있는지 확인 is_start_in = (x1 - cx)**2 + (y1 - cy)**2 코..
문제 링크https://www.acmicpc.net/problem/15656풀이 코드import sysinput = sys.stdin.readlinen, m = map(int, input().split())nums = sorted(list(map(int, input().split())))result = []def backtrack(): # 수열의 길이가 M에 도달하면 출력 if len(result) == m: print(*result) return # 0부터 N-1까지 모든 숫자를 확인 for i in range(n): result.append(nums[i]) # 현재 숫자를 수열에 추가 backtrack() ..