Problem https://www.acmicpc.net/problem/2447 Solution 위 문제는 분할정복 알고리즘을 통해 풀 수 있다. 분할 정복 분할 정복은 크게 분할-정복-병합 3단계로 나뉜다. 각 단계에서는 문제를 쪼갤 수 있는 최소 단위로 나눈 후, 각 최소 문제를 해결하고, 전체 문제로 합치는 과정을 거친다. 다시 위 ...
List Comprehension이란? 리스트를 간단하게 한 줄로 표현하는 파이썬 문법 형태 [ ( 변수를 활용한 값 ) for ( 사용할 변수 이름 ) in ( 순회할 수 있는 값 )] 예시 size = 10 arr = [i * 2 for i in range(size)] print(arr) [0, 2, 4, 6, 8, 10, 12, 14,...
Problem https://www.acmicpc.net/problem/1002 Solution 두 원의 위치관계를 활용해 푸는 문제이다. t = int(input()) for i in range(t): x1, y1, a, x2, y2, b = map(int, input().split()) d = ((x1-x2)**2+(y1-y2)...
Problem https://www.acmicpc.net/problem/2442 Solution 오답코드 n = int(input()) for i in range(n): for j in range(2*n-1): if n-1-i<=j<=n-1+i: print('*',end='') el...
Problem https://www.acmicpc.net/problem/11721 Solution 이 문제는 문자열 인덱싱과 슬라이싱을 활용하여 풀었다. 주어진 문자열의 길이를 10으로 나눈 몫과 나머지를 이용해서 10개 단위로 쪼개어 출력하였다. 오답코드 arr = input() n = len(arr) q = n//10 r = n%10 for ...
Problem https://www.acmicpc.net/problem/11718 Solution 이 문제는 파일의 끝(EOF)을 판단할 수 있는지를 묻는 문제이다. 파일의 끝은 Ctrl + D로 만들 수 있다. 파이썬의 input함수의 경우 EOF를 만나게 되면 EOFError를 발생시키기 때문에 try-except 문을 통해 EOFError를 찾...
Problem https://www.acmicpc.net/problem/1931 Solution ※ 풀이 포인트 끝나는 시간 기준으로 정렬하기 이 문제에서 중요한 점은 6 6과 같은 회의 직후에 6 7이 올 수 있다는 것이다. 오답코드 n = int(input()) time = list() for i in range(n): time.ap...
Problem https://www.acmicpc.net/problem/3009 Solution x1, y1 = map(int, input().split()) x2, y2 = map(int, input().split()) x3, y3 = map(int, input().split()) x4, y4 = x1^x2^x3, y1^y2^y3 print(x4...
Problem https://www.acmicpc.net/problem/9020 Solution 오답코드1 (시간초과) import sys # 소수 탐색 def prime_list(n): sieve = [True] * n m = int(n ** 0.5) for i in range(2, m + 1): if siev...
Problem https://www.acmicpc.net/problem/4948 Solution def prime_list(n): sieve = [True] * n m = int(n ** 0.5) for i in range(2, m + 1): if sieve[i] == True: for j i...