swlug/python 20

[파이썬/백준] 1011번 : Fly me to the Alpha Centauri

https://www.acmicpc.net/problem/1011   문제 설명   k광년을 이동하였을 때는 k-1 , k 혹은 k+1 광년만을 다시 이동할 수 있다. 예를 들어, 이 장치를 처음 작동시킬 경우 -1 , 0 , 1 광년을 이론상 이동할 수 있으나 사실상 음수 혹은 0 거리만큼의 이동은 의미가 없으므로 1 광년을 이동할 수 있으며, 그 다음에는 0 , 1 , 2 광년을 이동할 수 있는 것이다. ( 여기서 다시 2광년을 이동한다면 다음 시기엔 1, 2, 3 광년을 이동할 수 있다. )  x지점에서 y지점을 향해 최소한의 작동 횟수로 이동하려 한다. 하지만 y지점에 도착해서도 공간 이동장치의 안전성을 위하여 y지점에 도착하기 바로 직전의 이동거리는 반드시 1광년으로 하려 한다.김우현을 위해 x..

swlug/python 2024.09.28

[파이썬/백준] 9184번 : 신나는 함수 실행

9184번 : 신나는 함수 실행https://www.acmicpc.net/problem/9184  문제 설명   재귀 문제로 시간이 너무 오래 걸리는 것을 해결해야 한다. 메모이제이션을 통해 해결해야 하므로 간단히 개념을 살펴보자. (아래 글을 바탕으로 작성하였습니다.) 메모이제이션(Memoization) 개념 및 예시, 재귀(recursion)이번 포스팅에서 다루는 memoization 메모이제이션은 DP 동적 계획법 알고리즘에서 핵심이 되는 기술로 중복 계산을 제거함으로써 프로그램의 전체적인 실행 속도를 빠르게, 성능을 향상할 수 있는wondytyahng.tistory.com  메모이제이션(memoization)은 dp(dynamic programming, 동적 프로그래밍) 알고리즘에서 핵심이 되는 ..

swlug/python 2024.09.16

[파이썬/백준] 1932번 정수 삼각형

1932번 : 정수 삼각형https://www.acmicpc.net/problem/1932    문제 설명    Dynamic programming 알고리즘을 이용하여 푸는 문제인데 개념을 다시 리마인드 하고자 정리가 잘 된 글을 가져와봤다.모두 참고하여 아래 글을 정리한 것이다. [Python] DP(Dynamic Programming) 알고리즘이 뭘까?/ 개미전사 풀이 / 백준 1463번 1로 만들기 풀이다이나믹 프로그래밍이란? 앞에서 계산한 식을 배열에 미리 저장하여 연산속도를 증가시키는 프로그래밍 계산한 건 다시 계산하지 않는 게 중요하다 DP의 예: 피보나치 수열 DP = [1, 1, 2, 3, 5, 8, 13kill-xxx.tistory.com  dp란 앞에서 계산한 식을 배열에 미리 저장하여..

swlug/python 2024.09.16

[파이썬/백준] 2231번 분해합

2231번 분해합 https://www.acmicpc.net/problem/2231     문제 확인   예제# 입력216# 출력198  문제 분석 자연수 N의 가장 작은 생성자 구하기 (없는 경우/ 여러 개의 경우도 존재) - 없으면 0 출자연수 N = N과 N을 이루는 각 자리수의 합  (ex. 256 = 245 + 2 + 4 + 5 )  1부터 입력받은 n까지 for문을 통해 분해합을 구해보고 그 합이 n과 같다면 출력 후 break해준다.같지 않을 시, 분해합이 없는 경우로 간주하여 0 출력하고 다음 반복을 진행한다.   분해합을 구하는 알고리즘이 관건인 것 같은데...! 범위 내의 모든 수에 접근하기 위해 반복 변수인 i를 이용해준다. i의 각 자리수를 우선 다 더해서 위의 예시에서는 (2 + ..

swlug/python 2024.05.07

[파이썬/백준] 2798번 블랙잭

2798번 블랙잭https://www.acmicpc.net/problem/2798   문제 설명   예제 # 입력5 215 6 7 8 9# 출력21# 입력10 50093 181 245 214 315 36 185 138 216 295# 출력497  문제 분석 N장의 카드 중 3장을 뽑아 합이 M을 넘지 않으며 가장 가까운 수가 되도록 해야한다. -> 모든 방식을 탐색하는 브루트포스  1)  n : 카드 개수 , m : 카드합의 최댓값을 입력받는다. int로 맵핑해준다.     합들을 저장해줄 empty list = lst 를 생성한다.  2)  for문을 3번 중첩 사용하여 hap(합)을 구한 후 m보다 작거나 같다면,  lst(리스트)에 저장해준다.     (문제의 조건중 하나가 m 넘으면 안 되므로) ..

swlug/python 2024.05.07

[파이썬/백준] 1 2 3 더하기 & 부녀회장이 될테야

9095번 : 1 2 3 더하기https://www.acmicpc.net/problem/9095  문제 확인       문제 분석 정수 n이 주어졌을 때, n을 1,2,3만 가지고 합의 방법으로 나타낼 수 있는 "방법의 수"를 구하는 프로그램을 작성해야 한다. 1,2,3만 가지고 나타내야 하므로 각각의 값에서 나타낼 수 있는 방법의 수를 계산해보도록 하자피보나치 수열과 비슷한 방식으로 동적 프로그래밍 방법을 이용하면 될 듯 하다. n이 1일 경우 :  +1 n이 2일 경우:  1+1, +2 n이 3일 경우: 1+1+1, 1+2, 2+1, +3 n이 4 이상일 경우....  예를 들어 n이 4라고 해보자 (1)+1+1+1-> n(1) +3  // 1가지 (1+1)+2(2+2)-> n(2) +2 // 2가지..

swlug/python 2024.04.28

[파이썬/백준] 내리막길, 양팔저울

1521번 : 내리막길https://www.acmicpc.net/problem/1520 문제 설명 우선 해당 프로그램을 작성하기 위해서는 ‘DP (동적 알고리즘, Dynamic Algorithm) ’와 DFS (깊이 우선 탐색, Depth-First Search)를 알아야 하므로 간단하게 개념을 짚고 넘어가도록 하겠다. 참고 알고리즘 - Dynamic Programming(동적 계획법)1. 개요 DP, 즉 다이나믹 프로그래밍(또는 동적 계획법)은 기본적인 아이디어로 하나의 큰 문제를 여러 개의 작은 문제로 나누어서 그 결과를 저장하여 다시 큰 문제를 해결할 때 사용하는 것으로hongjw1938.tistory.com 문제 분석 간단한 로직 먼저 설명하자면, 우선 이 문제는 모든 경우의 수를..

swlug/python 2024.04.27

[파이썬/프로그래머스] n의 배수, 공배수

1. n의 배수 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  문제 설명정수 num과 n이 매개 변수로 주어질 때, num이 n의 배수이면 1을 return,n의 배수가 아니라면 0을 return하도록 solution 함수를 완성해주세요.제한 사항2 ≤ num ≤ 1002 ≤ n ≤ 9입출력 예num n result98213430입출력 예 설명입출력 예 #198은 2의 배수이므로 1을 return합니다.입출력 예 #232는 3의 배수가 아니므로 0을 return합니다.    프로그래머스를 통해 실행했을 때, 문제 없다고 나온 코드가 Jupyter lab을 ..

swlug/python 2024.04.27

[파이썬] 1주차 과제(답안)

문제 1  해설input()함수를 사용하여 사용자로부터 name이라는 변수에 이름을 입력받는다.print()함수를 사용하여 name 변수에 저장된 입력값과 추가 문구를 출력한다.   문제 2  해설이름, 기수, 학번이라는 변수 이름을 지정해준다. 여기선 각각 name, num, id로 지정해주었다.input 함수를 이용하여 입력을 받아야 한다. 여기선 문자열에 해당하는 내용을 출력 후 입력을 받아야하니 변수명=input(’문자열’) 형태로 작성해준다.출력함수 print를 사용하여 각 변수에 저장된 값과 추가 문구를 출력한다.     문제 3  해설연도, 학년, 반이라는 변수 이름을 지정해준다. 여기선 각각 year, grade, room으로 지정해주었다.여기서 주의할 점은 ‘반‘이라는 변수를 class로..

swlug/python 2024.04.27