알고리즘/알고리즘 공부(python) 16

BAEKJOON 19238 스타트 택시 Using Python

https://www.acmicpc.net/problem/19238 19238번: 스타트 택시 첫 줄에 N, M, 그리고 초기 연료의 양이 주어진다. (2 ≤ N ≤ 20, 1 ≤ M ≤ N2, 1 ≤ 초기 연료 ≤ 500,000) 연료는 무한히 많이 담을 수 있기 때문에, 초기 연료의 양을 넘어서 충전될 수도 있다. 다 www.acmicpc.net 문제 설명. 문제는 핵심 1. 현재 택시 위치에서 연료내에 갈 수 있는 손님 중 가장 가까운 손님을 선택 2. 가장 가까운 손님이 겹칠 때, 행이 작은 손님 선택, 이것도 겹칠 때 열이 작은 손님을 선택 3. 연료내로 목적지 갈 수 있는지 판단하고 손님에서 목적지까지 가는 연료량을 다시 충전하기. Edge Case 1. *edge 첫 택시 위치에 손님이 있을..

백준(BAEKJOON) 1654 랜선 자르기 using Python

https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 문제 설명 주어진 랜선(K)개를 통해서 길이가 똑같은 랜선(N)개를 만들 때 최대 길이를 구하는 문제이다. Input input값을 통해서 어떤 알고리즘을 쓸건지 판단한다. 이 문제는 K는 10000 이하의 자연수고 N은 1000000이하의 자연수다. 그러므로 완전 탐색은 못하고 탐색중에 시간 복잡도를 줄이는 탐색이 필요하다. 그래서 저는 값을 찾기 가장 간단한 방법인..

프로그래머스 (보석 쇼핑) using python

https://programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 이 문제 설명의 키워드는 진열된 모든 종류의 보석을 적어도 1개 이상 포함하는 가장 짧은 구간을 찾아서 구매와 같다. 결국 보석 종류가 다 포함된 가장 짧은 구간을 찾으면 된다. 나의 풀이 ( 효율성 3개 실패) def solution(gems): # 중복이 제거된 보물 리스트 bomul = list(set(gems)) # 보물 딕셔너리 bomul_dict = {} # 최소값 찾기 min_value = 1000..

프로그래머스( 신규 아이디 추천 ) using python

https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 이 문제는 잘못된 아이디가 있을 때 새로운 아이디를 추천해 주는 알고리즘을 만드는 것이다. 이 문제는 이 주어진 순서를 따라서 적으면 된다 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(...

프로그래머스_쿼드압축 후 개수 세기(성공)

https://programmers.co.kr/learn/courses/30/lessons/68936 코딩테스트 연습 - 쿼드압축 후 개수 세기 [[1,1,0,0],[1,0,0,0],[1,0,0,1],[1,1,1,1]] [4,9] [[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[0,0,0,0,1,1,1,1],[0,1,0,0,1,1,1,1],[0,0,0,0,0,0,1,1],[0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,1],[0,0,0,0,1,1,1,1]] [10,15] programmers.co.kr 이 문제는 grid와 stack을 이용해서 풀었다. 사각형으로 구성된 모든 값이 0이나 1이 될때 까지 계속 stack으로 쌓았다. 어차피 하나의 block으로 구성된 것은 ..