본문 바로가기

PYTHON13

백준 1269 대칭 차집합 백준 1269 대칭 차집합링크: 1269 대칭 차집합접근 방법(시간초과) 중복된 값을 제거하고 남은 원소의 개수를 센다.소스 코드 1 (시간초과)소스 코드: 92324784 제출# 입력A_num, B_num = map(int, input().split())A = [int(i) for i in input().split()]B = [int(i) for i in input().split()]# 중복된 값 제외duplicate_count = 0for a in A: if a in B: duplicate_count += 2print(A_num+B_num-duplicate_count)for 문으로 반복하면서 list 특성상 O(n)의 탐색이 소요되어 시간초과가 발생되는 것으로 추측for 문을 사용하.. 2025. 3. 31.
백준 25305 커트라인 백준 25305 커트라인링크: 25305 커트라인접근 방법리스트를 받아서 정렬 후 k 번째 점수를 출력소스 코드소스 코드: 92263137 제출N, k = map(int, input().split())score_list = [int(i) for i in input().split()]target_score = sorted(score_list, reverse=True)[k-1]print(target_score)결론이 문제의 난이도는 매우 쉬우므로 최대한 빠르게 코드를 작성하는 것을 목표로 하였다.최근 sorted() 가 오름차순으로 정렬한다는 것을 알고 있었기에 reverse 옵션을 사용하여 내림차순으로 정렬해 빠르게 풀었다. 2025. 3. 30.
백준 19532 수학은 비대면강의입니다 백준 19532 수학은 비대면강의입니다링크: 19532 수학은 비대면강의입니다접근 방법모든 경우의 수를 반복해서 해를 찾으면 종료소스 코드소스 코드: 92262854 제출import sysa, b, c, d, e, f = map(int, input().split())for x in range(-999, 1000): for y in range(-999, 1000): if a * x + b * y == c and d * x + e * y == f: print(x, y) sys.exit(0)결론브루트포스의 기본적인 문제로 가능한 모든 경우의 수를 반복하는 것을 목표로 한다.단 중복이 발생하면 안되고, 동일한 경우는 반복하지 않는 것을 주의하며 코드를 작.. 2025. 3. 30.
백준 14215 세 막대 백준 14215 세 막대링크: 14215 세 막대접근 방법가장 큰 값이 나머지 두 수의 합보다 작아질 때까지 반복소스 코드소스 코드: 92162494 제출# 입력a, b, c = map(int, input().split())# 입력 변환 후 계산number_list = sorted([a, b, c], reverse=True)while number_list[0] >= (number_list[1] + number_list[2]): number_list[0] -= 1print(sum(number_list))결론간단한 문제인데도 while 문에 들어갈 조건을 계속 수정했었다.어차피 컴파일은 무제한이니 결과가 잘 나올 때까지 반복하고는 하는데, 내가 고쳐야할 개발 방식 중 하나라고 생각된다.또한 개발 속도를.. 2025. 3. 28.
백준 5073 삼각형과 세 변 백준 5073 삼각형과 세 변링크: 5073 삼각형과 세 변접근 방법입력을 내림차순으로 정렬가장 긴 것을 기준으로 if 문으로 각 출력을 제어소스 코드소스 코드: 92117802 제출while True: len_list = [int(i) for i in input().split()] if sum(len_list) == 0: break len_list = sorted(len_list, reverse=True) if len_list[0] >= len_list[1] + len_list[2]: print("Invalid") elif len_list[0] == len_list[2]: print("Equilateral") elif len_list.. 2025. 3. 27.
백준 9506 약수들의 합 백준 9506 약수들의 합링크: 9506 약수들의 합접근 방법약수는 n의 절반 값까지 반복해서 찾으면 된다.모든 약수를 찾고 리스트로 변환 후 출력해서 처리소스 코드소스 코드: 91980463 제출while True: n = int(input()) if n == -1: break divisor_list = [] for i in range(1, n//2+1): if n % i == 0: divisor_list.append(i) # print("[debug]", divisor_list) if sum(divisor_list) == n: print(f"{n} = ", end="") print(*divisor_l.. 2025. 3. 25.