알고리즘/백준 109

백준 2447: 별 찍기 - 10 (Python)

https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net def star(s): list = [] num = len(s) for i in range(3 * num): if i // num == 1: list.append(s[i % num] + ' ' * num + s[i % num]) else: list.append(s[i % num] * 3) return list n = int(input()) s = ['***', '* *'..

알고리즘/백준 2021.09.08

백준 10870: 피보나치 수 5 (Python)

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 def fibonacci(n): if n == 0: return 0 elif n == 1: return 1 else: return fibonacci(n-1) + fibonacci(n-2) n = int(input()) print(fibonacci(n))

알고리즘/백준 2021.09.06

백준 1002: 터렛 (Python)

https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net t = int(input()) for i in range(t): x1, y1, r1, x2, y2, r2 = map(int, input().split()) d = ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** 0.5 rp = r1 + r2 rm = abs(r1 - r2) if d == 0: if rm == d: print(-1) else: print(0) else: if rp > d: if rm < d: print(2) elif ..

알고리즘/백준 2021.09.02

백준 3053: 택시 기하학 (Python)

https://www.acmicpc.net/problem/3053 3053번: 택시 기하학 첫째 줄에는 유클리드 기하학에서 반지름이 R인 원의 넓이를, 둘째 줄에는 택시 기하학에서 반지름이 R인 원의 넓이를 출력한다. 정답과의 오차는 0.0001까지 허용한다. www.acmicpc.net import math r = int(input()) print('%f'%float(r**2*math.pi)) print('%f'%float(2*r**2)) 유클리드 기하학에서의 원의 넓이: pi*r^2 택시 기하학에서의 원의 넓이: 두 대각선의 길이가 같은 마름모 = (1/2*r^2)*4 = 2*r^2

알고리즘/백준 2021.09.02

백준 4153: 직각삼각형 (Python)

https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 처음 코드 - 틀렸다 while True: x, y, z = map(int, input().split()) if x==0 and y==0 and z==0: break if x**2 + y**2 == z**2: print('right') else: print('wrong') 첨엔 왜 틀렸는지 넘 당황스러웠는데..... 문제 어디에도 z가 가장 큰 숫자라는 말이 없다...!! 그래서 리스트를 만들어서 가장 큰 숫자만 ..

알고리즘/백준 2021.09.02

백준 3009: 네 번째 점 (Python)

https://www.acmicpc.net/problem/3009 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net X = [] Y = [] for i in range(3): x, y = map(int, input().split()) if x in X: X.remove(x) else: X.append(x) if y in Y: Y.remove(y) else: Y.append(y) print(X[0], Y[0]) 세 좌표를 입력받고 직사각형을 만들려면 가로, 세로 쌍이 맞아야 하니까 쌍이 없는 x, y를 출력하게 했다!

알고리즘/백준 2021.09.02

백준 1085: 직사각형에서 탈출 (Python)

https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net x, y, w, h = map(int,input().split()) print(min(h-y, y, w-x, x)) 상하좌우 중 가장 가까운 곳을 출력하면 됨!

알고리즘/백준 2021.09.02

백준 9020: 골드바흐의 추측 (Python)

https://www.acmicpc.net/problem/9020 9020번: 골드바흐의 추측 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아 www.acmicpc.net 처음 코드 - 또 시간 초과,,,,,,,, 숫자를 처음부터 넣어서 차이값을 비교했었다 num = [] for i in range(2, 10000): cnt = 0 for p in range(2, int(i**0.5)+1): if i % p == 0: cnt += 1 break if cnt == 0: num.append(i) t = int(input()) for i in rang..

알고리즘/백준 2021.09.01

백준 4948: 베르트랑 공준 (Python)

https://www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 1929번 문제에서 범위 제한만 하면 되네~하고 풀었지만 시간 초과😤💧 while True: n = int(input()) cnt = 0 if n == 0: break for i in range(n+1, 2*n+1): for p in range(2, int((2*n)**0.5)+1): if i % p == 0: cnt += 1 break print(n-cnt) 각 테스트 케이스마다 계속 소..

알고리즘/백준 2021.09.01