전체 글 1851

[백준] #2231 분해합 python

https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 📕 설명 📕 주어진 수보다 작은 수들을 리스트에 다 넣은 후, 하나씩 비교해가며 생성자인지를 확인한다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N = int(input()) N_list = [i for i in range(1, N)] result_list = [] for i in N_list: tmp_val = i for j in str(i): tmp_val += int(j) i..

[백준] #2798 블랙잭 python

https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 📕 설명 📕 수의 나열을 리스트로 받아서 itertools의 combinations를 이용하여 부분 집합을 구하여 3개씩 잘라서 합을 구하여 구현하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 from itertools import combinations N, M = map(int, input().split()) blackjak_list = list(map(int, input..

[베이즈 통계학] 2022.12.28. [완독]

베이즈 통계학을 읽을 때, 초반에 독자들의 쉬운 접근을 위하여 몇 가지의 블록으로 나타내어 확률을 표시하였다. 이러한 여러 확률들을 계속해서 조건이 들어감에 따라 블록의 개수가 많아지고, 이를 확장하여 같은 확률이 많아지는 것을 '균등분포'로 하여금 "무한개의 근원사상으로부터 확장한 것"으로 의미를 붙였다. 여기서 알 수 있는 것은 몇 가지 블록으로 이루어진 것이 우리가 흔히 볼 수 있는 "분포"로 이루어짐을 알 수 있다. 여기서 또, 다시 축소 되어 직사각형의 면적을 색칠하여 확률을 나타내어 "확률분포"를 나타낼 수 있다. 또, 구간을 나타내어 "확률밀도"도 나타낼 수 있었다. 이를 통해 베타 분포가 나오고, 기대치, 가중평균 등의 개념을 이해할 수 있다. 또 이후의 정규분포와 같은 개념에 대한 이해를..

Reading 2022.12.28

[백준] #11729 하노이 탑 이동 순서 python

https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 📕 설명 📕 하노이 탑 알고리즘을 고려하여 문제 풀이. 재귀 중 가장 대표적인 문제. 1. 탈출 조건 설정하기 2. 일정 규칙 구현 3. 가장 큰 과정을 머릿속으로 구현하며 따라가기 이 과정에서 3가지 단계로 나눌 수 있다. 1번 : 하노이 탑 N - 1개를 가운데로 옮긴다. 2번 : 제일 큰 원판을 target 위치로 옮긴다. 3번 : N - 1개를 target 위치로 옮긴다. 🧑🏻..

[gtithub] git blog

드디어 학기 중에 생각만하던 git 블로그를 만들었다. just TIL 용도로만 만들었는데 좋은 것 같다. 테마도 마음에 들고, fork하지 않고 그대로 가져와서 만들었다. jekyll 테마에 들어가서 http://jekyllthemes.org/ Jekyll Themes jekyllthemes.org 테마를 선정했다. 직접 소스 코드를 download 하여서 내 파일에 옮겨 붙인 후, git add . git commit -m "" git push origin main 하고 gir remote -v 하여서 로컬과 연동하였다. 이제는 연동이 잘 된다. 소스 코드 하나하나 고치는 맛도 있도 꽤 좋은 것 같다. 내일 더 수정해서 올려야지.

Programming/Git 2022.12.28

[백준] #2447 별 찍기 python

https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 📕 설명 📕 재귀를 이용하여 별 찍기 구현. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N = int(input()) def star(N): if N == 3: return ['***', '* *', '***'] arr = star(N//3) stars = [] for i in arr: stars.append(i * 3) for i in arr: stars.append(i + ' '*..

[백준] #24060 알고리즘 수업 - 병합 정렬 1 python

https://www.acmicpc.net/problem/24060 24060번: 알고리즘 수업 - 병합 정렬 1 첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 500,000), 저장 횟수 K(1 ≤ K ≤ 108)가 주어진다. 다음 줄에 서로 다른 배열 A의 원소 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 109) www.acmicpc.net 📕 설명 📕 병합 정렬을 이용한 재귀를 구현하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N, K = map(int ,input().split()) num_list = list(map(int ,input().split())) cnt = 0 result = -1 def merge_sort(num_list, p, r): if p < r and cnt

[백준] #25501 재귀의 귀재 python

https://www.acmicpc.net/problem/25501 25501번: 재귀의 귀재 각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다. www.acmicpc.net 📕 설명 📕 주어진 힌트에 대하여 문자를 앞부터, 그리고 뒤부터 비교해 가며 풀이하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N = int(input()) def recursion(s, left, right, cnt): cnt += 1 if left >= right: return 1, cnt elif s[left] != s[right]: return 0, cnt else: return recursion(s, left+1, right-1, cnt) def i..

[백준] #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 📕 설명 📕 피보나치를 구현한 재귀 함수 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N = int(input()) def fibonacci(N): if N == 0: return 0 if N == 1: return 1 return fibonacci(N - 1) + fibonacci(N - 2) print(fibonacci(N))