전체 글 244

백준 11729: 하노이 탑 이동 순서 (Python)

https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net def hanoi(n, a, b, c, list): if n == 1: list.append(f'{a} {b}') else: hanoi(n-1, a, c, b, list) list.append(f'{a} {b}') hanoi(n-1, c, b, a, list) n = int(input()) list = [] hanoi(n, 1, 3, 2, list) print(len(list)) fo..

알고리즘/백준 2021.09.08

백준 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

[안드로이드] 다이얼로그 플로우 연동

[참고] https://www.youtube.com/watch?v=zVxDBBCdpfY Dialog Flow를 통해 챗봇 학습을 완료시킨 후 안드로이드에 연동하는 방법 리사이클러뷰를 통해 챗봇을 구현한다. ✅ 시작하기 전에 - 인터넷 권한 주기 (manifest 파일) - res에 raw 폴더 만들어서 credential.json 파일 넣어주기 (구글 API 인증 정보) -> 유출 조심!! 깃에 올릴땐 gitignore 처리해주기 1. 우선 리사이클러뷰에 필요한 레이아웃을 만들어준다. - 액티비티 레이아웃 (전체 화면) - 아이템 레이아웃 (상대방 대화상자 UI + 내 대화 상자 UI) 2. 메시지를 담을 데이터 클래스 만들기 - message: 메시지 - isReceived: 보낸 메시지인지 받은 메시..

*/Android 2021.09.04

백준 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