본문 바로가기

algorithm

알고리즘 기초 1/2 300-수학: 골드바흐의 추측 골드바흐의 추측(python 6588)시간초과 풀이while True: n = int(input()) l = [] if n == 0: break for i in range(3, n): if n % i == 0 and n % 2 == 1: l.append(i) for i in range(0, len(l), -1): b = l[i] if (n - b) in l: a = n - b print(n, " = ", a, "+ ", b) break else: print("Goldbach's conjecture is wrong.")다른 풀이들을 보.. 더보기
알고리즘 기초 1/2 300-수학: 소수 구하기 소수구하기(python 1929)첫 풀이는 시간초과 발생역시 정답률이 낮아서 그럴거같았다M, N = map(int, input().split())result = []for i in range(M, N + 1, 1): result.append(i)for i in range(M, N + 1, 1): if i 해결은 for-else 구문으로 코드를 간결화하여 성공import mathM, N = map(int, input().split())for i in range(M, N + 1, 1): if i for - else 구문for loop 뒤에 else를 붙여주는 방식(else와 for은 같은 위치 선상에)작동방식은 for문을 다 돌고 난 뒤 else 구문 내의 코드를 실행한다이 for - els.. 더보기
알고리즘 기초 1/2 300-수학: 소수찾기 소수찾기(python 1978)이전에 풀어본 문제라 math함수를 이요하여 소수를 찾아내는 방식으로 해봄import mathN = int(input())l = list(map(int, input().split()))cnt = len(l)for i in range(len(l)): if l[i] 더보기
알고리즘 기초 1/2 300-수학: 최소공배수 최소공배수(python 1934)함수를 이용하면 매우 간단히 풀리는 문제import sysimport mathT = int(input())for i in range(T): A, B = map(int, sys.stdin.readline().split()) print(math.lcm(A, B)) 더보기
알고리즘 기초 1/2 300-수학: 최대공약수와 최소공배수 최대공약수와 최소공배수(python 2609)첫 풀이는 시간초과가 발생함생각보다 문제가 무겁구나..틀린풀이A, B = map(int, input().split())m = 1n = A * Bfor i in range(1, A if A>=B else B): if A % i == 0 and B % i == 0: m = ifor i in range(n, 1, -1): if i % A == 0 and i % B == 0: n = iprint(m)print(n)혹시나 싶어 반복수를 줄여줘도 해결이 안됨A, B = map(int, input().split())m = 1n = A * Biter = A//2 if A>=B else B//2for i in range(1, iter): .. 더보기
알고리즘 기초 1/2 300-수학: 나머지 나머지(python 10430)A, B, C = map(int, input().split())print((A + B) % C)print(((A % C) + (B % C)) % C)print((A * B) % C)print(((A % C) * (B % C)) % C) 더보기
알고리즘 기초 1/2 203-자료구조(참고): 접미사 배열 접미사 배열(python 11656)어이없는 실수로 살짝 헤메긴 했음사전순 정렬은 sort() 함수를 활용하였고 문자열 슬라이싱으로 접미사 구분을 해줌S = input()l = []for i in range(len(S)): l.append(S[i::])l.sort()for i in l: print(i) 더보기
알고리즘 기초 1/2 203-자료구조(참고): 네 수 네 수(python10824)각 변수를 str으로 받아서 붙인 다음에 int로 바꾸면 해결되는 간단한 문제A, B, C, D = map(str, input().split())AB = int(A + B)CD = int(C + D)print(AB + CD) 더보기