핵심 포인트 시간 복잡도 제출코드 n = int(input()) print((n - 1) * n // 2) print(2) 해설 이 문제를 풀 때 중요한 것은 주어진 문제 내의 코드를 분석하는 것 입니다. 주어진 MenOfPassion 함수는 2개의 변수 (A, n)를 입력으로 받습니다. 내부 알고리즘에서 중요한 부분은 반복문입니다. 보시면 2개의 반복문으로 구성되어 있음을 알 수 있습니다. i가 1 ~ n - 1까지 반복한다고 가정했을 때 i = 1이면 j = 2 ~ n까지 반복하므로 총 (n - 2) + 1 = n - 1 번 반복합니다. i = 2 라면 j = 3 ~ n까지 반복하므로 총 (n - 3) + 1 = n - 2 번 반복합니다. 이 과정을 계속 수행하면 $(n - 1) + (n - 2) +..
핵심 포인트 시간 복잡도 제출코드 n = int(input()) print(n ** 2) print(2) 해설 이 문제를 풀 때 중요한 것은 주어진 문제 내의 코드를 분석하는 것 입니다. 주어진 MenOfPassion 함수는 2개의 변수 (A, n)를 입력으로 받습니다. 내부 알고리즘에서 중요한 부분은 반복문입니다. 보시면 n번 만큼 내부에서 2번 반복되고 있음을 알 수 있습니다. 따라서, 내부적으로는 총 $n^{2}$번의 함수가 실행되고 있으며 시간복잡도는 $O(n^{2})$이 되므로 최대 차수는 2을 출력하면 됩니다. 참고자료 및 그림출처 백준 코딩 문제
핵심 포인트 시간 복잡도 제출코드 n = int(input()) print(n) print(1) 해설 이 문제를 풀 때 중요한 것은 주어진 문제 내의 코드를 분석하는 것 입니다. 주어진 MenOfPassion 함수는 2개의 변수 (A, n)를 입력으로 받습니다. 내부 알고리즘에서 중요한 부분은 반복문입니다. 보시면 n번 만큼 내부에서 반복되고 있음을 알 수 있습니다. 따라서, 내부적으로는 총 n번의 함수가 실행되고 있으며 시간복잡도는 $O(n)$이 되므로 최대 차수는 1을 출력하면 됩니다. 참고자료 및 그림출처 백준 코딩 문제
핵심 포인트 시간 복잡도 제출코드 n = int(input()) print(1) print(0) 해설 이 문제를 풀 때 중요한 것은 주어진 문제 내의 코드를 분석하는 것 입니다. 주어진 MenOfPassion 함수는 2개의 변수 (A, n)를 입력으로 받습니다. 내부 알고리즘은 크게 2가지 연산으로 구성됩니다. 첫번째는 주어진 n을 2로 나누어 i 변수에 담는 과정입니다. 두번째는 배열 A의 i 번째 값을 인덱싱 하는 과정입니다. 이 두 연산은 모두 1번만 수행하면 함수가 종료됩니다. 따라서, 첫번째 출력은 1입니다. 주어진 코드는 상수 시간 복잡도를 가지기 때문에 두번째 출력은 0 입니다. 참고자료 및 그림출처 백준 코딩 문제
핵심 포인트 기초 구현력 삼각형 조건 제출코드 length = sorted(list(map(int, input().split()))) if length[-1] < sum(length[:2]): print(sum(length)) else: print(sum(length[:2]) * 2 - 1) 해설 3개의 각 막대의 길이를 입력받은 뒤 오름차순으로 정렬해줍니다. 일단, 삼각형의 조건을 만족해야하기 때문에 가장 큰 막대의 길이가 나머지 두 막대의 길이의 합보다 짧다면 바로 삼각형을 만들 수 있기 때문에 바로 sum 함수를 이용해서 세 막대 길이의 합을 출력합니다. 다음 조건을 삼각형의 조건이 애초에 만족하지도 않는다면 삼각형의 길이가 최대가 될 수 있는 막대의 길이를 찾아야합니다. 어차피 가장 큰 막대를 제..
핵심 포인트 기초 구현력 삼각형 종류 숙지 제출코드 angle = [int(input()) for _ in range(3)] if sum(angle) != 180: print('Error') elif angle[0] == angle[1] == angle[2]: print('Equilateral') elif (angle[0] == angle[1]) or (angle[0] == angle[2]) or (angle[2] == angle[1]): print('Isosceles') else: print('Scalene') 해설 3개의 각도를 입력받습니다. 다음 3개의 조건문을 이용해서 삼각형을 분류할 수 있습니다. 1. 첫번째 조건은 입력받은 3개의 각도의 합이 180도 아닌 경우입니다. 이는 삼각형이 정의될 수..
핵심 포인트 기초 구현력 제출코드 x_min, x_max = 10000, -10000 y_min, y_max = 10000, -10000 for _ in range(int(input())): x, y = map(int, input().split()) if x_min > x: x_min = x if x_max y: y_min = y if y_max < y: y_max = y print((x_max - x_min) * (y_max - y_min)) 해설 문제를 보시면 입력된 좌표들의 최대 및 최소 x, y 좌표 값을 구한 뒤 넓이를 구하면 되는 문제입니다. 참고자료 및 그림출처 백준 코딩 문제