문제 바로가기 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 나의 코드 및 설명 백트래킹을 통해 문제를 풀이하였다. 종료 조건에 도달하면, 함수의 temp_list 변수에 저장된 요소들의 합을 메인 함수의 result 리스트에 추가하고 리턴한다. set()을 통해 중복을 제거하고 sort()를 통해 정렬함으로써 5번째로 큰 값을 찾아 출력했다. def dfs(count, start, temp_list): if count == 3: result.append(sum(temp_list)) return for i in range(start, 7): dfs(count+1, i+1, temp_list + [num_lis..
문제 바로가기 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 나의 코드 및 설명 t = int(input()) for test_case in range(1,t+1): n = int(input()) if n % 2 == 0: #짝수 개의 카드일 때, length = n//2 else: #홀수 개의 카드일 때 length = (n//2) +1 string = list(input().split()) stack = [] #반으로 쪼갠다. 짝수 개일 때는 정확히 절반, 홀수 개일 때는 앞쪽의 카드들의 수가 더 많도록 슬라이싱한다. a_list = string[:length] b_list = string[length:]..
문제 바로가기 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 나의 코드 및 설명 for test_case in range(1,11): n, num = map(int,input().split()) #문자의 총 수 , 문자열 num_list = list(map(int, str(num))) i = 0 while True: if i == len(num_list)-1: #i가 리스트 끝까지 온다면 탈출 break if num_list[i] == num_list[i+1]: #만약 붙어있는 값이 같다면 num_list.pop(i+1) #뒤에있는 값부터 pop num_list.pop(i) #그 다음 앞의 값 pop i = ..
문제 바로가기 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 나의 코드 및 설명 for test_case in range(1,11): n = int(input()) #원본 암호문의 길이 num_list = list(map(int, input().split())) #원본 암호문 command = int(input()) #명령어의 개수 command_list = list(map(str, input().split())) insert_cnt = 0 #명령어 개수 카운트하기 위한 변수 for i in range(len(command_list)): if command_list[i] == "I": #만약 I를 만나면 in..
문제 바로가기 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 나의 코드 및 설명 def dfs(a, count, result): #a:곱하려고 하는 숫자 count:곱하는 횟수 result:곱한 값 global ans if count == m: #m번만큼 곱하면, ans = result #정답은 현재 저장된 곱한 값 return #리턴 result = result * a dfs(a, count + 1, result) #다음 곱 수행 for test_case in range(1, 11): t = int(input()) n, m = map(int, input().split()) ans = 0 dfs(n, 0, 1..
문제 바로가기 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 나의 코드 및 설명 t = int(input()) for test_case in range(1, t+1): n,m = map(int, input().split()) #돌을 놓을 보드 설정 board = [[0]*n for _ in range(n)] #초기에 놓여진 돌 정보들 저장 board[n//2][n//2] = 2 board[(n//2)-1][(n//2)-1] = 2 board[(n//2)][(n//2)-1] = 1 board[(n//2)-1][(n//2)] = 1 #방향벡터 dx = [0,1,0,-1,1,1,-1,-1] dy = [-1,0,1,..
문제 바로가기 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 나의 코드 및 설명 def dfs(count, check_list): global max_ans, min_ans #한 번 숫자를 교환한다면 리턴 if count == 1: #첫 번째 자리가 0이 아니고, 새로운 최소값이라면 if check_list[0] != 0 and min_ans > int("".join(map(str, check_list))): #최소값 갱신 min_ans = int("".join(map(str, check_list))) #새로운 최대값이라면 최대값 갱신 if max_ans < int("".join(map(str, check_l..
문제 바로가기 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 나의 코드 및 설명 t = int(input()) for test_case in range(1,t+1): n,m,k = map(int, input().split()) customers = list(map(int, input().split())) customers.sort() max_time = max(customers) total = 0 i = 0 ans = 1 for time in range(0, max_time+1): if time != 0 and time % m == 0: total += k if time == customers[i]: if t..