오늘 알고리즘 풀이는 최대한 효율적으로 해나가려고 노력했다. 코드를 부분별로 바꿔보면서 어떤 방식이 가장 실행시간이 짧은지 고민해보았다. 반복문의 실행횟수를 줄이는 것과 같은 방식으로 문제에서 요구한 실행시간을 맞출 수 있었다.
백준 17103번 골드바흐 파티션
'''시간초과
from sys import stdin
def prime(num):
    if num == 1 or num == 0:
        return False
    else:
        for i in range(2, int(num ** 0.5)+1):
            if num % i == 0:
                return False
        return True
prime_list = [prime(i) for i in range(1000001)]
T = int(stdin.readline())
for j in range(T):
    N = int(stdin.readline())
    count = 0
    for k in range(N//2+1):
        if prime_list[k]==True and prime_list[N-k]==True:
            count+=1
    print(count)
'''
# 오늘 가장 오래걸린 방식
import sys
T = int(sys.stdin.readline())
prime = [True for i in range(1000001)] 
# 전체 리스트를 만들고 확인하는 방식이 효율적
prime[0] = prime[1] = False
for i in range(2, 1001):
    for j in range(i*2, 1000001, i):
        prime[j] = False
for i in range(T):
    count = 0
    N = int(sys.stdin.readline())
    for j in range(2,int(N/2)+1):
        if prime[j] and prime[N-j]:
            count += 1 
    print(count)
백준 11005번 진법 변환 2
# 헤맸지만 생각보다 간단했던 문제
import sys
system = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" #10진법이면 9 까지, 36진법이면 Z까지 표현
N, B = map(int,sys.stdin.readline().split())
answer = ''
while N != 0:
    answer += str(system[N % B])
    N //= B
print(answer[::-1]) # 역순 정렬
백준 2745번 진법 변환
import sys
N, B = sys.stdin.readline().split()
system = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
count = 0
for i in range(0,len(N)):
    index = system.find(N[len(N)-i-1])
    count += index*int(B)**i
print(count)