본문 바로가기

Algorithm120

백준 2447 파이썬 - 별 찍기 10 1. 문제 링크 https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 2. 나는 어떻게 생각했는가? - 문제는 이해했지만, 풀이가 잘 이해가 안간다. - 수학적 사고력이 많이 부족하다는 것을 느끼게하는 문제 - 지금 당장 이해가 안가는 문제를 붙잡고 있으려니, 시간이 아깝다고 생각해서 패스한다. 3. 정답 코드 def draw_star(n) : global Map if n == 3 : Map[0][:3] = Map[2][:.. 2021. 8. 17.
백준 10870 파이썬 - 피보나치 5 1. 문제 링크 https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 2. 나는 어떻게 생각했는가? def fibonacci(n): if n 2021. 8. 17.
백준 10872 파이썬 - 팩토리얼 1. 문제 링크 https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 2. 나는 어떻게 생각했는가? def factorial(n): result = 1 while n > 0: result *= n n -= 1 factorial(n) return result n = int(input()) print(factorial(n)) - 내가 작성한 코드는 재귀적이다 라는 느낌이 없다. - 재귀적이기 보다는 콜백의 느낌이 가까운 것 같다. 3. 정답 코드 def factorial(n): if n == 0: return 1 else: return n * factori.. 2021. 8. 17.
백준 1002 파이썬 - 터렛 1. 문제 링크 https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 2. 나는 어떻게 생각했는가? 아무리 생각해봐도 어떻게 접근해야하는지 모르겠다. 그래서 해답을 찾아보았다. approach - 기하학의 원과 원의 접점의 개수를 구하는 방법을 사용한다. 입력값 x, y는 원의 중심 좌표를, r은 원의 반지름을 의미한다. 두 원의 중심 사이의 거리는 피타고라스의 정리를 이용하여 구한다. 두 원의 접점이 생길 수 있는 경우의 수 (https://mathbang.net/101) 1. 두 원의 중심이 같은 .. 2021. 8. 17.
백준 3053 파이썬 - 택시 기하학 1. 문제 링크 https://www.acmicpc.net/problem/3053 3053번: 택시 기하학 첫째 줄에는 유클리드 기하학에서 반지름이 R인 원의 넓이를, 둘째 줄에는 택시 기하학에서 반지름이 R인 원의 넓이를 출력한다. 정답과의 오차는 0.0001까지 허용한다. www.acmicpc.net 2. 나는 어떻게 생각했는가? # 유클리드 기하학 원의 넓이 = PI * r^2 # 택시 기하학 원의 넓이 = 2 * r^2 from math import pi r = int(input()) print(r ** 2 * pi) print(2 * r ** 2) - 유클리드 기하학과 택시 기하학 원의 넓이 공식을 구글링 했다. 2021. 8. 17.
백준 4153 파이썬 - 직각삼각형 1. 문제 링크 https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 2. 나는 어떻게 생각했는가? # 내가 생각한 풀이 # 피타고라스의 정리를 이용하여 푼다. while True: case = list(map(int, input().split())) if sum(case) == 0: break else: case.sort() if case[0] ** 2 + case[1] ** 2 == case[2] ** 2: print("right") else: print("wro.. 2021. 8. 17.
백준 3009 파이썬 - 네 번째 점 1. 문제 링크 https://www.acmicpc.net/problem/3009 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 2. 나는 어떻게 생각했는가? # 내가 생각한 풀이 # 사각형의 4개의 좌표는 다음과 같은 조합을 이룬다 # min x, min y # min x, max y # max x, min y # max x, max y # 이 조합을 이용하면 max x와 min x, max y와 min y는 각각 2개씩을 갖는다. # 만약 1개씩 부족한 조합이 있다면, 비어있는 좌표가 정답이 된다. x_list = [] y_list = [] for _ in range(3): x, y .. 2021. 8. 17.
백준 1085 파이썬 - 직사각형에서 탈출 1. 문제 링크 https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net 2. 나는 어떻게 생각했는가? x, y, w, h = map(int, input().split()) right_distance = w - x left_distance = x top_distance = h - y down_distance = y result_x = 0 result_y = 0 if right_distance >= left_distance: resul.. 2021. 8. 17.
백준 9020 파이썬 - 골드바흐의 추측 1. 문제 링크 https://www.acmicpc.net/problem/9020 9020번: 골드바흐의 추측 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아 www.acmicpc.net 2. 나는 어떻게 생각했는가? def prime(n): #에라토스테네스의 체 a = [True] * n sqrt = int(n ** 0.5) for i in range(2, sqrt + 1): if a[i]: for j in range(i + i, n, i): a[j] = False return [i for i in range(2, n) if a[i] == Tr.. 2021. 8. 14.