Programming [Python] (411) 썸네일형 리스트형 #376 백준 파이썬 [9086] 문자열 https://www.acmicpc.net/problem/9086 PYTHON CODE for _ in range(int(input())): string = input() print(string[0], string[-1], sep = '') #375 백준 파이썬 [9093] 단어 뒤집기 https://www.acmicpc.net/problem/9093 PYTHON CODE for words in [list(map(lambda x: x[::-1], input().split())) for _ in range(int(input()))]: print(*words) #374 백준 파이썬 [11660] 구간 합 구하기 5 https://www.acmicpc.net/problem/11660 SOLUTION 할 때마다 for 문을 행렬로 두 번 돌려 sum을 구하는 방식은 시간 초과가 난다. O(n^2)이기 때문. 1행 1열부터 x행 y열까지의 sum을 한 번에 구해놓고 sum_matrix 리스트에 저장한 뒤 더하기와 빼기로 구하는 방법을 활용한다. 1차원 배열을 DP로 구하는 것과 똑같다. 시간을 줄일 수 있는 방법은 2차원 배열을 얼마나 빠르게 채우냐에 따라 달려있다. 메인 식은 다음과 같다. 시작 좌표가 i, j 끝좌표가 x, y라고 가정할 때, print(sum_matrix[x-1][y-1] - sum_matrix[i-2][y-1] - sum_matrix[x-1][j-2] + sum_matrix[i-2][j-2]) i.. #373 백준 파이썬 [5586] JOI와 IOI https://www.acmicpc.net/problem/5586 PYTHON CODE string = input() JOI = 0 IOI = 0 for i in range(len(string)-2): answer = '' answer += string[i] + string[i+1] + string[i+2] #3글자가! if answer == 'JOI': JOI += 1 if answer == 'IOI': IOI += 1 print(JOI) print(IOI) #372 백준 파이썬 [16204] 카드 뽑기 https://www.acmicpc.net/problem/16204 PYTHON CODE N, M, K = map(int, input().split()) print(min(M, K) + N - max(M, K)) #둘 중 작은 것 + 둘 중 큰 것 #371 백준 파이썬 [9625] BABBA - 피보나치 수열 https://www.acmicpc.net/problem/9625 PYTHON CODE #A, B는 피보나치 수열을 따른다. 갯수만을 세보자. K = int(input()) fibonacci = [0] * (K + 1) fibonacci[1] = 1 for i in range(2, K + 1): fibonacci[i] = fibonacci[i-1] + fibonacci[i-2] print(fibonacci[K-1], fibonacci[K]) #370 백준 파이썬 [10830] 행렬 제곱 - 분할 정복 https://www.acmicpc.net/problem/10830 SOLUTION 분할정복으로 풀 수 있는 문제다. 말그대로 말도 안되는 큰 연산을 요구하는 문제를 작은 단위로 쪼개서 계산한 다음, 다시 연산해주는 것이다. 분할정복!! 어렵지 않다. A행렬을 N번곱할때 연산을 N-1번 수행해주는 것은 옳지 않다. (시간 복잡도) N이 15인 수를 구한다면, A를 14번 곱해주는 대신에 (A**8) * (A**4) * (A**2) * (A**1) 이런식으로 제곱 가능한 숫자로 구성해준다면 3번, 2번, 1번, 0번 --> 총 6번, 그리고 각자 곱하는 3번을 포함해 9번만에 끝날 수 있다. 작은 숫자를 제곱하면 별 차이가 없겠지만 N이 문제와 같이 크다면 99,999,999,999번의 연산을 360번정도.. #369 백준 파이썬 [2535] 아시아 정보올림피아드 https://www.acmicpc.net/problem/2535 PYTHON CODE N = int(input()) students = sorted([list(map(int, input().split())) for _ in range(N)], key = lambda x: -x[2]) print(*students[0][:2]) print(*students[1][:2]) if students[0][0] == students[1][0]: #같을 경우 print(*students[3][:2]) else: print(*students[2][:2]) 이전 1 2 3 4 5 6 7 8 ··· 52 다음