전체 글 155

[백준/Python] 맥주 마시면서 걸어가기

https://www.acmicpc.net/problem/9205저는 dfs를 사용하였습니다.DFS를 사용하는 이유: 거리가 되는 모든 방향을 탐색해야 하기 때문https://www.acmicpc.net/board/view/86660 x와 y의 값이 1000(20X50) 이하이면 갈 수 있다1000보다 크면 갈 수 없다  입력 받기from sys import stdint = int(stdin.readline())result = []for _ in range(t): n = int(stdin.readline()) # 편의점 개수 home_x, home_y = map(int, stdin.readline().split()) store = [] for _ in range(n): ..

[Python] 최단 경로 플로이드 워셜 알고리즘

https://www.yes24.com/Product/Goods/91433923  이것이 취업을 위한 코딩 테스트다 with 파이썬 - 예스24나동빈 저자의 유튜브 라이브 방송 https://www.youtube.com/c/dongbinnaIT 취준생이라면 누구나 입사하고 싶은 카카오 · 삼성전자 · 네이버 · 라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생www.yes24.com 플로이드 워셜 알고리즘모든 지점에서 모든 지점까지의 최단 경로를 구해야 할 때 사용시간 복잡도: O(N^3) 특정 노드를 거쳐서 간 것과 바로 간 것 중 최소를 구한다점화식: D(ab) = min( D(ab), D(ak)+D(kb) ) 필요: 최단 경로를 저장하기 위한 2차원 리스트  최단 경로를 저장하는 grap..

카테고리 없음 2024.09.18

[Python] 최단 경로 다익스트라 알고리즘

https://www.yes24.com/Product/Goods/91433923 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 예스24나동빈 저자의 유튜브 라이브 방송 https://www.youtube.com/c/dongbinnaIT 취준생이라면 누구나 입사하고 싶은 카카오 · 삼성전자 · 네이버 · 라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생www.yes24.com 다익스트라 알고리즘음의 간선이 없을 때 사용된다. 최단 거리를 모두 무한으로 초기화한다.-> 방문하지 않은 노드 중 최단 거리가 가장 짧은 노드를 찾는다-> 그 노드를 통해서 최단 거리를 줄일 수 있으면 갱신모든 노드 반복 짧은 노드부터 찾는 이유: 최단 거리가 완전히 선택된 노드이므로, 최단 거리가 더이상 감소하지..

카테고리 없음 2024.09.18

[백준/Python] 무한 수열

+https://www.acmicpc.net/problem/1351 먼저 저는 다이나믹 프로그래밍을 사용해야겠다고 생각했습니다예를 들어 n=7, p=2, q=3이 나왔을 때 다이나믹 프로그래밍- 재귀 함수 + 메모제이션을 이용(탑다운 방식)- 반복문을 이용(보텀업 방식) 먼저 반복문을 이용하여 코드를 구현했습니다.from sys import stdinn, p, q = map(int, stdin.readline().split())dp = [0] * (n+1)dp[0] = 1for i in range(1, n+1): dp[i] = dp[i//p] + dp[i//q] print(dp[n])하지만 n이 최대 10의 12승이기 때문에 메모리 초과가 났습니다. 그래서 저는 메모리를 줄이기 위해 n//p와..

git과 github

깃과 깃허브Git: 내 것. 개인 버전 관리 툴Github: 공동 저장소(Remote Repository) 깃허브의 용도1. 백업2. 버전 관리3. 협업 깃의 논리적인 3개의 차원(물리적으로는 하나)1. Working Directory: 깃이 추적하지 않는다(버전 추적 X)2. Staging Area: 깃이 추적하는 공간3. Local Repository: Remote Repository에 올리기 전 공간 Working Directory -> Staging Area -> Local Repository -> Remote Repository                            git add              git commit                   git push현재 디렉토리 기..

카테고리 없음 2024.09.12

[백준/Python] 잃어버린 괄호

https://www.acmicpc.net/problem/1541  -40 +50-(40 +50) -40 +50 +30-(40 +50 +30) -40 +50 +30 +100-(40 +50 +30 +100) -40 +50 +30 +100 -1000-(40 +50 +30 +100) -1000 그리디를 이용- 뒤에 -가 올 때까지 모든 +를 -로 바꾼다 1. 입력 받기original = input() 2. 숫자와 기호를 분리# 숫자st = original.replace('+', ' ')st = st.replace('-', ' ')num = list(map(int, st.split()))여기에서 00009도 숫자로 바꿀 수 있다 # 기호pm = []for o in original: if o=='+' or ..

[백준/Python] 균형 잡힌 세상

https://www.acmicpc.net/problem/4949  저는 stack을 이용하여 구현하였습니다.2023.12.16 - [코딩테스트 문제] - [프로그래머스/Python] 올바른 괄호 [프로그래머스/Python] 올바른 괄호문제 https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘dogfoot1.tistory.com의 상위 버전입니다. 1. 무한 반복문을 사용하고, '.'이 들어오면 break2. 들어온 문자열 중 ()[] 만 남긴다3. no가 되는 상황에 대한 함수 작성 no 가 되는 상황1. s..

[백준/Python] 소수 구하기

https://www.acmicpc.net/problem/1929 소수 구하기 방법 3가지https://seongonion.tistory.com/43 소수판별 알고리즘 - 파이썬 (Python)알고리즘 문제를 풀다보면 특정 수들이 소수인지 판단하도록 요구하는 문제들이 줄곧 있다. 아예 대놓고 소수찾기라는 문제만 쳐봐도 꽤 많은 문제들이 나올 것이다. 소수는 영어로 Prime Number라seongonion.tistory.com 1. 하나씩 보기2. 제곱근3. 에라토스테네스의 체 저는 2번과 3번을 구현해보겠습니다. 2. 제곱근True: 소수False: 소수가 아님 제곱근을 위해서는 math 라이브러리를 임포트 합니다.from sys import stdinfrom math import sqrtm, n = ..

[Python] 이진 탐색

탐색- 순차 탐색데이터를 앞에서부터 순서대로 확인최악의 경우 시간 복잡도 O(N)- 이진 탐색데이터가 정렬이 되어있을 때 사용할 수 있지만 빠르게 찾을 수 있다.시작점, 끝점, 중간점이 필요시간 복잡도 O(logN) 탐색이 많은 문제에서 sort()를 하고 이진 탐색을 이용하는 방법이 있습니다 이진 탐색 구현data =[0,2,4,6,8,10,12,14,16,18]  재귀 함수를 이용한 이진 탐색 코드def binary_search(array, target, start, end): if start > end: # start, mid, end 다 같을 때 mid+1이나 mid-1하면 start>end가 됨 return None mid = (start + end)//2 ..