전체 글 270

python 백준 알고리즘 2798번: 블랙잭

https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 파이썬에서 제공하는 순열 조합 라이브러리의 combinations 함수를 이용하여 3개의 카드 조합의 경우를 구했다. ** itertools https://docs.python.org/ko/3/library/itertools.html itertools — 효율적인 루핑을 위한 이터레이터를 만드는 함수 — Python 3.10.7 문서 itertools — 효율적인 ..

python 백준 알고리즘 11729번: 하노이 탑 이동 순서

https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net ** 참고자료 하노이의 탑 알고리즘 https://www.youtube.com/watch?v=FYCGV6F1NuY&t=378s n개의 원판이 있을때, 맨 밑의 원판을 제외한 나머지 n - 1개의 원판들을 시작기둥에서 보조기둥으로 옮긴 뒤(1단계), 맨 밑의 원판을 목표기둥으로 옮긴다(2단계). 그리고 n - 1개의 원판들을 다시 보조기둥에서 목표기둥으로 옮긴다(3단계). 내 제출 n ..

python 백준 알고리즘 2447번: 별 찍기 - 10

N의 패턴 -> ' '으로 채워진 가운데의 (N/3) x (N/3)의 정사각형을 크기 (N/3)의 패턴으로 둘러싼 형태. 결국 재귀를 돌면서 N은 최소단위는 3이 되고, 탈출경로로 N=3일때의 패턴을 만들어 리턴. ** 재귀함수 최대깊이 설정 import sys sys.setrecursionlimit(10**6) 파이썬의 재귀함수 기본 최대횟수가 1000회로 작아 대부분의 코딩테스트 문제에 적용시켜줘야 수월하다 ** '\n'.join '구분자(이 경우 줄넘김)'.join(리스트)를 이용하면 리스트의 값과 값 사이에 '구분자'에 들어온 구분자를 넣어서 하나의 문자열로 합친다. ** input 과 sys.studin.readline 둘은 기능상 큰 차이가 없으나 속도차이가 크다. 백준은 입력값을 받아서 문제..

python 백준 알고리즘 25501번: 재귀의 귀재

문제에서 팰린드롬을 구하는 코드의 힌트를 거의 다 줘서 호출 횟수 부분만 신경써주면 된다. global을 이용, cnt 변수를 전역변수로 만들어 사용. 내 제출 def recursion(s, l, r): global cnt # 함수 내에서 전역 변수로 cnt를 활용하기 위해 global로 명시해준다. cnt += 1 if l >= r: return 1 elif s[l] != s[r]: return 0 else: return recursion(s, l+1, r-1) def isPalindrome(s): return recursion(s, 0, len(s)-1) for _ in range(int(input())): cnt = 0 print(isPalindrome(input().rstrip()), cnt)

python 백준 알고리즘 10870번: 피보나치 수 5

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

python 백준 알고리즘 10872번: 팩토리얼

https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net ** N = 0일때 출력이 1 기본 팩토리얼 재귀 함수는 # Factorial(N) = N*Factorial(N-1) # ... # Factorial(1) = 1 N이 1일때 리턴값 만들기 def factorial(n): if n == 1: return 1 return n * factorial(n - 1) 여기서 n == 0:으로 바꿔주면 입력이 0일시 출력 1이면서 n이 1일 경우에도 입력값 1로 정상작동한다. def factorial(n): if n == 0: return 1 return n * ..

20020918 WIL

이번주동안 한 일 python 강의 마무리 python 과제 - 클래스 심화, 파이썬 심화 문법, 조건문, 반복문 백준 알고리즘 문제 풀이 및 정리 python https://yaun.tistory.com/166 20220913 클래스 활용해보기 1. 도형 넓이 계산기 num1 = int(input('첫 번째 숫자를 입력 : ')) num2 = int(input('두 번째 숫자를 입력 : ')) class calc_area: def __init__(self, num1, num2): self.num1 = num1 self.num2 = num2 def sq.. yaun.tistory.com https://yaun.tistory.com/180 20220914 파이썬 과제 1. 계산기 심화 num1 = inpu..

Earth, Wind & Fire - September

https://youtu.be/or9maJRvSOw Do you remember the 21st night of September? 9월의 21번째 밤을 기억하나요? Love was changin' the mind of pretenders 사랑은 위선자들의 마음을 바꾸고 While chasin' the clouds away 구름도 거둬들이고 있었죠 Our hearts were ringin' 우리 가슴은 뛰고 있었죠. In the key that our souls were singin' 우리의 영혼이 부르던 노래에서 As we danced in the night, remember 우리가 밤에 춤을 출 때 How the stars stole the night away, 별들이 어둠을 거두어 가던 걸 기억하나..

취미/music 2022.09.17

20220916 TIL

오늘의 한 일 python 강의 복습 백준 알고리즘 문제 풀이 - 재귀 python 강의 및 과제물 복습 백준 알고리즘 문제 풀이 - 재귀 ** 재귀함수 파이썬에서 사용시 최대깊이 설정 import sys sys.setrecursionlimit(10**6) # 재귀함수 최대깊이 설정 ** input 대신 sys.stdin.leadline() 쓰는 이유 https://growingarchive.tistory.com/157 하노이의 탑 알고리즘 www.youtube.com/watch?v=FYCGV6F1NuY https://han-py.tistory.com/224 [python] 재귀함수(recursive function) python의 꽃. DFS의 필수 개념인 재귀 함수에 대해 알아보자. 왜 재귀 함수를 ..