[Python] 9252 - LCS 2
·
백준/Gold
[Gold IV] LCS 2 - 9252[문제 링크](https://www.acmicpc.net/problem/9252)🗝️알고리즘 분류다이나믹 프로그래밍LCS 알고리즘💻문제 정의두 문자열을 비교하여 LCS(Longest Common Subsequence)를 구하는 문제이다. 💡접근 및 설계다이나믹 프로그래밍으로 LCS 알고리즘을 구현하였다. ✏️알고리즘 풀이first = [''] + list(input().rstrip())second = [''] + list(input().rstrip())dp = [['' for _ in range(len(second))] for _ in range(len(first))]for i in range(1, len(first)): for j in range(1, ..
[Data-Analysis] 신용카드 사용자 연체 예측 프로젝트
·
Data-Analysis
https://dacon.io/edu/21024/ 신용카드 사용자 연체 예측 프로젝트 💳신용등급 예측 프로젝트를 통해 머신러닝 대회에서 활용할 수 있는 기법을 배워보세요. 데이터 분석을 하여 금융 데이터 분석의 실력을 향상시켜 보세요.dacon.io데이터 분석 공부 및 대회 준비를 위해 신용카드 사용자 연체 예측 프로젝트를 진행하였다. 이미 예전에 데이콘에서도 다루었던 주제였고, 해당 대회를 바탕으로 다시한 번 데이터 분석 실습을 진행해보았다. 0. 데이터 및 라이브러리 로드import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('..
[Python] 1865 - 웜홀
·
백준/Gold
[Gold III] 웜홀 - 1865 [문제 링크](https://www.acmicpc.net/problem/1865)🗝️알고리즘 분류최단 경로벨만-포드💻문제 정의N개의 지점이 존재하는 마을에서, 한 지점에서 출발하여 웜홀을 통해 시작 지점으로 돌아왔을 때, 출발 시간보다 이전 시간대로 돌아온 경우 "YES"를 출력하고 아니면 "NO"를 출력하는 문제이다. 즉, 주어진 마을을 그래프로 표현하였을 때, 어느 한 정점에서 부터 사이클이 발생하고, 그 사이클이 무한한 음수 사이클을 가지는지를 찾는 문제이다. 💡접근 및 설계사이클 발생 및 음수 여부를 판단하기 위한 알고리즘으로 벨만-포드 알고리즘을 활용한다. ✏️알고리즘 풀이def bellman_ford(start): # 시작 노드 거리 초기화 ..
[Python] 9461 - 파도반 수열
·
백준/Silver
[Silver III] 파도반 수열 - 9461 [문제 링크](https://www.acmicpc.net/problem/9461)🗝️알고리즘 분류다이나믹 프로그래밍💻문제 정의파도반 수열을 구현하라. 💡접근 및 설계[1, 1, 1, 2, 2, 3, 4, 5, 7, 9, ... ] 순으로 늘어나는 수열이다. 이 중 [0, 1, 1, 1, 2, 2] 인 dp 리스트가 존재한다고 할 때, dp[6] = dp[5] + dp[1] 즉, 2 + 1 = 3임을 알 수 있다. 해당 규칙을 이용해 다이나믹 프로그래밍을 구현하였다. ✏️알고리즘 풀이# 리스트 초기화dp = [1] * 101dp[4] = 2dp[5] = 2for i in range(6, N+1): dp[i] = dp[i-1] + dp[i-5]문제에..
[Python] 11404 - 플로이드
·
백준/Gold
[Gold IV] 플로이드 - 11404 [문제 링크](https://www.acmicpc.net/problem/11404)🗝️알고리즘 분류최단 경로플로이드-워셜💻문제 정의각 도시마다 다른 도시로 이동할 때의 최단 경로를 차례로 출력하는 프로그램을 작성하는 문제이다. 💡접근 및 설계정점 N개에 대하여, 모든 정점으로 이동하기 위한 최단 경로 비용을 구해야 한다. 플로이드-워셜 알고리즘을 활용하여 각 정점에서 다른 정점 사이의 최단 경로를 구할 것이다. 다익스트라 알고리즘보다 플로이드-워셜 알고리즘이 더욱 간결하고 구현이 쉬워 이를 이용한다. 플로이드-워셜 점화식은 다음과 같다. ✏️알고리즘 풀이for k in range(1, N+1): for a in range(1, N+1): f..
[Python] 2580 - 스도쿠
·
백준/Gold
[Gold IV] 스도쿠 - 2580 [문제 링크](https://www.acmicpc.net/problem/2580) 🗝️알고리즘 분류백트래킹💻문제 정의풀다 만 스도쿠가 주어졌을 때, 이를 완성하는 프로그램을 작성하라. 💡접근 및 설계빈칸에 숫자를 하나 씩 넣어보면서, 스도쿠 완성 조건을 하나 씩 따져보면서 백트래킹 한다. ✏️알고리즘 풀이for i in range(1, 10): # 1 ~ 9의 값을 넣어봄 if (c[x][i] == 0) and (c2[y][i] == 0) and (c3[square(x, y)][i] == 0): c[x][i] = c2[y][i] = c3[square(x, y)][i] = True a[x][y] = i # 값을 넣고 if..