차곡차곡 성 쌓기
article thumbnail
[백준] 1, 2, 3 더하기 5 - 자바
알고리즘/백준 2024. 5. 31. 01:07

1. 문제https://www.acmicpc.net/problem/15990 2. 접근문제가 너무 DP스러워서 바로 경우의 수들을 차례차례 써봤다. 처음에는 잘 안보였는데 연속해서 사용하면 안된다 조건에 집중해서 계속 생각해봤다. 1이 마지막에 나오면 그 후엔 2와 3만 올 수 있고 그러면 n-2와 n-3에서 정보를 가져와야 할텐데.. 또 마지막에 나오는 수를 저장하기 위해 2차원 배열을 사용해볼까! 하다가 점화식이 떠올랐다 나온 점화식은 아래와 같다dp[i][1] = (dp[i-1][2] + dp[i-1][3]) % MODdp[i][2] = (dp[i-2][1] + dp[i-2][3]) % MODdp[i][3] = (dp[i-3][1] + dp[i-3][2]) % MOD-> result : dp[i][..

#1 별찍기 시각화 시도
Soma 2024. 5. 18. 18:51

소마 프로젝트로 코드의 진행과정을 시각화 해주는 서비스를 만들기로 했다!우선 간단한 별찍기 로직을 시각화 먼저 해보기 했다.  목표 코드a = 8for i in range(a): print('*' * (i+1)) a = 8를 AST 트리로 변환 후 트리 출력하기import ast# 분석할 소스 코드source_code = """a = 8"""# 소스 코드를 AST로 파싱parsed_ast = ast.parse(source_code)# AST 트리를 출력def print_ast(node, level=0): print(' ' * level + ast.dump(node)) for child in ast.iter_child_nodes(node): print_ast(child, le..

macOS에서 파이썬 가상환경 만들기
IT 정보 2024. 5. 9. 17:50

macOS에서 파이썬 가상환경을 생성하려면 다음 단계를 따르세요. 1. 터미널을 엽니다.파이썬 3.7이 설치되어 있는지 확인합니다. 터미널에서 다음 명령어를 실행합니다.brew install python@3.7파이썬 3.7이 설치되어 있지 않은 경우, 파이썬 3.7을 설치해야 합니다. zshrc 파일에 alias python="which python3의 결과 경로" 한줄을 추가합니다.# python이 설치된 위치를 찾습니다.which python3# 환경변수 파일에 경로 지정vim ~/.zshrc# 수정사항 적용source ~/.zshrc 2. 가상환경을 생성할 디렉토리로 이동합니다. 다음 명령어를 사용하여 가상환경을 생성합니다. 여기서 myenv는 가상환경의 이름입니다. 원하는 다른 이름을 사용할 수 ..

article thumbnail
[백준] MST 게임 : 16202 - MST
카테고리 없음 2024. 5. 6. 00:23

1. 문제 2. 어떻게 풀까?MST의 비용을 구할 수 있어야 풀 수 있는 문제로 진행되는 라운드 동안 하나씩 가중치가 낮은 간선을 제거하면서 MST의 비용을 구하는 문제이다. 잊고 있던 MST 비용 구하는 개념을 다시 복습해보자Edge 간선을 우선순위 큐에 모두 삽입한다 가중치가 낮은(또는 높은)순으로 우선순위 큐에서 빼낸다Edge를 이루는 두 정점을 이을 시 싸이클이 형성되는지 확인한다 (find 연산)싸이클이 형성되지 않으면 해당 Edge를 MST를 이루는 간선으로 추가한다.간선의 개수가 N-1개가 되면 비용을 리턴한다. N-1개가 되지 못하면 MST 그래프를 만들 수 없다 먼저 MST를 구하는 코드를 짠다.public static int MST(int k, PriorityQueue pq){ i..

article thumbnail
[백준] 여행 : 2157 - DP
알고리즘/백준 2024. 4. 25. 20:53

1. 문제   2. 접근고려해야 하는 조건은 다음과 같다1번에서 시작해서 N으로 끝내야 한다선택할 수 있는 도시는 최대 M개이다.a도시에서 b도시로 갈 때 경로가 여러개 주어질 수 있다. 최대값만 얻어야 한다 처음 접근은 다익스트라 알고리즘을 사용하는 것이었다. 최대 비용으로 노드를 선택했을 때를 구현하면 될 것 같았다. 하지만 중간에 구현하다가 기내식의 비용이 같을 때는 어떻게 처리하지? 의문이 들었고 그리디적 알고리즘으로 최적의 상황이 해가되는 다익스트라로는 풀 수 없는 것을 깨달았다. 어떻게 풀나 찾아봤더니 DP를 이용하는 문제였다.  DP를 2차원 배열 DP[N][M] 선언하고 도시 N을 M번째로 선택했을 떄의 값을 구해준다.점화식은 다음과 같다` DP[b][M] = Math.max(DP[b][M..