전체 글 157

[Python] Set 자료형

https://wikidocs.net/1015 02-6 집합 자료형집합(set)은 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다. [TOC] ## 집합 자료형은 어떻게 만들까? 집합 자료형은 다음과 같이 set 키워드를 사용해 …wikidocs.net # 순서가 없어서 인덱싱 기능을 이용하려면 리스트나 튜플로 변환해야 함# 문자열도 가능# 교집합 & 합집합 | 차집합 -# 원소 하나 추가 add# 여러 원소 추가 update# 특정값 제거 remove# 기존 세트 비우기 clear  set를 이용하여 문제 풀기 https://www.acmicpc.net/problem/11723 import sysinput = sys.stdin.readlineS = set()m = int(input())for _..

카테고리 없음 2024.09.20

[백준/Python] 로봇 청소기

https://www.acmicpc.net/problem/14503 저는 BFS를 사용했습니다.  현재 칸이 0이면 청소 상하좌우- 청소 되지 않은 칸이 없으면 한 칸 후진 (벽이면 멈춤) - 청소 되지 않은 칸이 있으면 반시계 회전 (앞 칸이 청소 안된 곳일 때까지)반복 방문 확인을 위한: 벽(1)과 청소가 안된 것(0) 청소가 된 것(0.5)로 구분 import sysfrom collections import dequeinput = sys.stdin.readline# 행 열n, m = map(int, input().split())r, c, d = map(int, input().split()) # 0북 1동 2남 3서graph = []for _ in range(n): graph.append(lis..

카테고리 없음 2024.09.19

[백준/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..