SW역량테스트

    [python] SWEA - 3282. 0/1 Knapsack

    [python] SWEA - 3282. 0/1 Knapsack

    🤔문제 해결 D3 | DP( Knapsack ) 💨 냅색알고리즘 💨 각 아이템에 대해서 가방의 크기를 0부터 1씩 최대무게까지 늘려가며 계산. 💨 가방의 크기가 해당 아이템의 무게보다 작으면 아이템을 넣지 못한다. 이전까지의 무게와 가치 적용 💨 가방의 크기가 해당 아이템의 무게보다 크면 아이템을 넣을지 말지 선택한다. 💨💨 이전까지의 무게와 가치 vs (이전까지의 무게 - 현재 아이템의 무게)의 가치 + 현재 아이템의 가치 💻소스 코드 # 입력 T = int(input()) Ns = [] for tc in range(T): N, K = map(int, input().split()) items = [list(map(int, input().split())) for _ in range(N)] Ns.appen..

    [python] SWEA - 3975. 승률 비교하기

    [python] SWEA - 3975. 승률 비교하기

    🤔문제 해결 D3 | 수학 💨 D1이라고 해도 아까운 문제 D0.5 💨 알고리즘 해결문제가 아닌 입출력 속도의 문제이다. 💨 심지어 파이썬은 sys.stdin 을 막아놓음( 표준 입출력 input 만 사용하도록 ) 💨 입력 받고 계산해서 출력하는 것보다 💨 입력을 다 받고 그 후 계산해서 출력하는 것이 빠르다. 💻소스 코드 lst = [] T = int(input()) for tc in range(T): lst.append(tuple(map(int, input().split()))) for tc in range(T): A, B, C, D = lst[tc] ALICE = A / B BOB = C / D print(f'#{tc + 1}', end=' ') if ALICE > BOB: print('ALICE'..

    [python] SWEA - 4371. 항구에 들어오는 배

    [python] SWEA - 4371. 항구에 들어오는 배

    🤔문제 해결 D3 💨 두번째 즐거운 날 부터 1일과의 차이를 계산한다 💨 그 규칙만큼 마지막 즐거운 날까지의 배를 배열에 담는다. 💨 다음 즐거운 날이 이미 배열에 없는 경우만 차이를 계산하여 반복한다. 💨 1, 7, 10, 13, 19 💨 두번째 즐거운 날(7) 과 1일 차이 = 6 💨 배열 = [7, 13, 19] 💨 세번째 즐거운날 10 은 배열에 없으므로 차이 계산 💨 세번재 즐거운 날(10) 과 1일 차이 = 9 💨 배열 = [7, 10, 13, 19] 💨 네번째, 다섯번째 즐거운 날 (13, 19) 는 이미 배열에 있으므로 pass 💨 총 계산을 두 번 했으므로 배는 2개 💻소스 코드 for tc in range(int(input())): N = int(input()) happy_days = ..

    [python] SWEA - 4579. 세상의 모든 팰린드롬 2

    [python] SWEA - 4579. 세상의 모든 팰린드롬 2

    🤔문제 해결 D3 | 문자열(팰린드롬) 💨 주어진 문자열을 뒤집어서 원래의 문자와 하나씩 비교해준다. 💨 계속 같다면 넘어가고 💨 다르다면 그 때의 문자가 '*' 인지 확인 - '*' 이 맞다면 이 문자는 무조건 팰린드롬이다. 💨 하지만 '*' 이 아니라면 이 문자는 팰린드롬이 아니다. 💻소스 코드 for tc in range(int(input())): answer = 'Not exist' word = input() reversed_word = word[::-1] for i in range(len(word)): if word[i] == reversed_word[i]: continue if word[i] == '*' or reversed_word[i] == '*': answer = 'Exist' break..

    [python] SWEA - 4698. 테네스의 특별한 소수

    [python] SWEA - 4698. 테네스의 특별한 소수

    🤔문제 해결 D3 | 소수 💨 에라토스테네스의 체를 이용해서 미리 소수들을 구한다. 💨 D 가 포함되면서 소수인 수를 찾는다. 💻소스 코드 # 테스트케이스마다 소수를 찾으면 시간초과가 발생하기 때문에 에라토스테네스의 체를 이용해 미리 소수들을 구해놓는다. N = 10**6 def set_prime(): for i in range(N+1): if prime[i] == 1: for j in range(i*2, N+1, i): prime[j] = 0 prime = [1]*(N + 1) prime[0], prime[1] = 0, 0 set_prime() for tc in range(int(input())): D, A, B = map(int, input().split()) answer = [] for i in r..

    [python] SWEA - 4751. 다솔이의 다이아몬드 장식

    [python] SWEA - 4751. 다솔이의 다이아몬드 장식

    🤔문제 해결 D3 | ? 💨 규칙을 찾는 문제 💨 첫줄과 마지막줄은 ..#. 과 끝에 . 💨 두번째줄과 네번째줄은 .#.# 과 끝에 . 💨 가운데 문자가 들어가는줄은 #. + 문자하나 + . 과 마지막에 # 💻소스 코드 for tc in range(int(input())): word = input() a = '..#.' b = '.#.#' ab_last = '.' c1 = '#.' c2 = '.' c_last = '#' N = len(word) answer = ['']*5 answer[0] += a*N + ab_last answer[1] += b*N + ab_last for w in word: answer[2] += c1 + w + c2 answer[2] += c_last answer[3] += b*N ..