Programming/Coding Problem

Programming/Coding Problem

BOJ 24265번: 알고리즘 수업 - 알고리즘의 수행 시간 4

핵심 포인트 시간 복잡도 제출코드 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) +..

Programming/Coding Problem

BOJ 24264번: 알고리즘 수업 - 알고리즘의 수행 시간 3

핵심 포인트 시간 복잡도 제출코드 n = int(input()) print(n ** 2) print(2) 해설 이 문제를 풀 때 중요한 것은 주어진 문제 내의 코드를 분석하는 것 입니다. 주어진 MenOfPassion 함수는 2개의 변수 (A, n)를 입력으로 받습니다. 내부 알고리즘에서 중요한 부분은 반복문입니다. 보시면 n번 만큼 내부에서 2번 반복되고 있음을 알 수 있습니다. 따라서, 내부적으로는 총 $n^{2}$번의 함수가 실행되고 있으며 시간복잡도는 $O(n^{2})$이 되므로 최대 차수는 2을 출력하면 됩니다. 참고자료 및 그림출처 백준 코딩 문제

Programming/Coding Problem

BOJ 24263번: 알고리즘 수업 - 알고리즘의 수행 시간 2

핵심 포인트 시간 복잡도 제출코드 n = int(input()) print(n) print(1) 해설 이 문제를 풀 때 중요한 것은 주어진 문제 내의 코드를 분석하는 것 입니다. 주어진 MenOfPassion 함수는 2개의 변수 (A, n)를 입력으로 받습니다. 내부 알고리즘에서 중요한 부분은 반복문입니다. 보시면 n번 만큼 내부에서 반복되고 있음을 알 수 있습니다. 따라서, 내부적으로는 총 n번의 함수가 실행되고 있으며 시간복잡도는 $O(n)$이 되므로 최대 차수는 1을 출력하면 됩니다. 참고자료 및 그림출처 백준 코딩 문제

Programming/Coding Problem

BOJ 24262번: 알고리즘 수업 - 알고리즘의 수행 시간 1

핵심 포인트 시간 복잡도 제출코드 n = int(input()) print(1) print(0) 해설 이 문제를 풀 때 중요한 것은 주어진 문제 내의 코드를 분석하는 것 입니다. 주어진 MenOfPassion 함수는 2개의 변수 (A, n)를 입력으로 받습니다. 내부 알고리즘은 크게 2가지 연산으로 구성됩니다. 첫번째는 주어진 n을 2로 나누어 i 변수에 담는 과정입니다. 두번째는 배열 A의 i 번째 값을 인덱싱 하는 과정입니다. 이 두 연산은 모두 1번만 수행하면 함수가 종료됩니다. 따라서, 첫번째 출력은 1입니다. 주어진 코드는 상수 시간 복잡도를 가지기 때문에 두번째 출력은 0 입니다. 참고자료 및 그림출처 백준 코딩 문제

Programming/Coding Problem

BOJ 14125번: 세 막대

핵심 포인트 기초 구현력 삼각형 조건 제출코드 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 함수를 이용해서 세 막대 길이의 합을 출력합니다. 다음 조건을 삼각형의 조건이 애초에 만족하지도 않는다면 삼각형의 길이가 최대가 될 수 있는 막대의 길이를 찾아야합니다. 어차피 가장 큰 막대를 제..

Programming/Coding Problem

BOJ 5073번: 삼각형과 세 변

핵심 포인트 기초 구현력 삼각형 종류 숙지 제출코드 while True: length = list(map(int, input().split())) if sum(length) == 0: break temp = length[::] max_value = max(temp) temp.remove(max_value) if max_value >= sum(temp): print('Invalid') elif length[0] == length[1] == length[2]: print('Equilateral') elif (length[0] == length[1]) or (length[1] == length[2]) or (length[2] == length[0]): print('Isosceles') else: print('..

Programming/Coding Problem

BOJ 10101번: 삼각형 외우기

핵심 포인트 기초 구현력 삼각형 종류 숙지 제출코드 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도 아닌 경우입니다. 이는 삼각형이 정의될 수..

Programming/Coding Problem

BOJ 9063번: 대지

핵심 포인트 기초 구현력 제출코드 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 좌표 값을 구한 뒤 넓이를 구하면 되는 문제입니다. 참고자료 및 그림출처 백준 코딩 문제

Johns Hohns
'Programming/Coding Problem' 카테고리의 글 목록 (2 Page)