Programming(106)
-
백준 BaekJoon Online Judge // 1085
백준 알고리즘 BaekJoon Online Judge 1085번 "직사각형에서 탈출" 문제입니다. import sys x, y, w, h = map(int, sys.stdin.readline().split()) print(min((abs(x-w), abs(x), abs(y-h), abs(y)))) 현재 (x, y) 좌표일 때, (0,0)으로 시작해서 (w,h) 좌표로 끝나는 직사각형의 테두리까지 가는 최소 거리를 구하는 문제다. 최소 거리이기 때문에 가로 혹은 세로 직선거리라고 추측할 수 있다. 가로로 따질 경우는 두 가지를 따져야 한다. w-x와 x-0 둘 중 작은 것을 골라야하고 세로로 따질 경우는 h-y와 y-0 둘 중 작은 것을 골라야한다. 결국 w-x, x-0, h-y, y-0 넷 중 가장 작은..
2021.01.22 -
백준 BaekJoon Online Judge // 9020
백준 알고리즘 BaekJoon Online Judge 9020번 "골드바흐의 추측" 문제입니다. n=10000 a = [False,False] + [True]*(n-1) primes=[] for i in range(2,n+1): if a[i]: primes.append(i) for j in range(2*i, n+1, i): a[j] = False TC = int(input()) for tc in range(TC): N = int(input()) K = 99999 N1, N2 = 0, 0 for i in range(2, N//2+1): if a[i] and a[N-i]: N1 = i N2 = N-i print(N1, N2) 에라스토테네스의 체를 활용하는 문제다. 그리고 이 문제는 소수리스트를 탐색하는 것..
2021.01.22 -
SW Expert Academy // 4579
SW Expert Academy 4579번 "세상의 모든 팰린드롬 2" 문제입니다. TC = int(input()) for tc in range(1, TC+1): S = input() pell = True if len(S) == 1: pell = True else: for i in range(0, len(S)//2): if S[i] != S[len(S)-1-i]: if S[i] != '*' and S[len(S)-1-i] != '*': pell = False break if pell: print("#%d Exist"%tc) else: print("#%d Not exist"%tc) 전에 포스트했던 "세상의 모든 팰린드롬" 문제와 유사한 문제다. ggemkko-8642.tistory.com/entry/SW-..
2021.01.22 -
SW Expert Academy // 4522
SW Expert Academy 4522번 "세상의 모든 팰린드롬" 문제입니다. TC = int(input()) for tc in range(1, TC+1): S = input() pell = True if len(S) == 1: pell = True else: for i in range(0, len(S)//2): if S[i] != S[len(S)-1-i]: if S[i] != '?' and S[len(S)-1-i] != '?': pell = False break if pell: print("#%d Exist"%tc) else: print("#%d Not exist"%tc) 펠린드롬, 회문이란 제대로 읽었을 경우와 거꾸로 읽었을 경우 똑같은 문자열을 말한다. 예를 들어 dog는 거꾸로 읽으면 god이므..
2021.01.22 -
SW Expert Academy // 4676
SW Expert Academy 4676번 "늘어지는 소리 만들기" 문제입니다. TC = int(input()) for tc in range(1, TC + 1): string = input() N = int(input()) hy_lst = list(map(int, input().split())) str_lst = ['']*(len(string)+1) for i in range(N): str_lst[hy_lst[i]] += '-' print("#%s"%tc, str_lst[0], end="") for i in range(len(string)): print(string[i], end="") if str_lst[i+1] != '': print(str_lst[i+1],end="") print() "-" 문자를 ..
2021.01.21 -
SW Expert Academy // 4698
SW Expert Academy 4698번 "테네스의 특별한 소수" 문제입니다. TC = int(input()) n=1000000 a = [False,False] + [True]*(n-1) primes=[] for i in range(2,n+1): if a[i]: primes.append(i) for j in range(2*i, n+1, i): a[j] = False for tc in range(1, TC + 1): D,A,B = map(int, input().split()) count = 0 for e in primes: if A
2021.01.21