Total
당구연습 (그래프, 구현)
import sys,math # 점과 점 사이의 거리 구하는 함수 def dist(x1, y1, x2, y2): result = math.sqrt(math.pow(x1-x2,2) + math.pow(y1-y2,2)) return result def solution(m, n, startX, startY, balls): answer=[] for endX, endY in balls: minval=sys.maxsize # 일직선으로 공이 먼저 부딪히는 경우 빼고 계산 if not (startX==endX and startYendY): # 하 minval = min(minval, dist(startX, -startY, endX, endY)) if not (startY==endY and startX>endX): #..

빛의 경로 사이클 (그래프, 모든 좌표, 네방향 탐색)
https://school.programmers.co.kr/learn/courses/30/lessons/86052 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr dr = (1, 0, -1, 0) dc = (0, -1, 0, 1) def solution(grid): # 빛의 경로 싸이클 길이 리스트 오름차순 리턴 answer = [] """ 0,0 에서 시작 네방향 탐색 bfs """ lr, lc = len(grid), len(grid[0]) print(lr,lc) # 네방향 방문 기록 visited=[[[False]*4 for _ in range(lc)]..
2개 이하로 다른 비트 (x보다 큰 1~2비트 다른 가장 작은 수)
https://school.programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 x보다 크고 x와 비트가 1~2개 다른 수들 중에서 제일 작은 수 숫자가 짝수인 경우 항상 가장 마지막 비트는 0이다. 따라서 마지막 비트를 0에서 1로 바꿔준 값이 답이기 때문에 숫자+1 값을 answer에 넣어준다. 숫자가 홀수인 경우 가장 뒤쪽에 있는 0을 1로 바꿔주고 그다음 비트를 0으로 바꿔주면 된다. 예를 들어 7(0111) 은 가장 뒤쪽에 있는 0을 1로 바꿔주고 그다음 비트를..
다리를 지나는 트럭 (다리 큐, 대기 큐)
from collections import deque def solution(bridge_length, weight, truck_weights): answer = 0 w=0 # 다리에 올라간 트럭들 무게 wq=deque(truck_weights) # 대기트럭 큐 bq=deque([0 for _ in range(bridge_length)]) # 다리 큐 time=0 while len(wq) or w>0: w-=bq.popleft() if len(wq) and w+wq[0]
숫자의 표현 (약수의 개수)
자연수 n을 연속한 자연수들로 표현 하는 방법 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다. 1 + 2 + 3 + 4 + 5 = 15 4 + 5 + 6 = 15 7 + 8 = 15 15 = 15 자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution n의 홀수인 약수의 개수 약수가 1 : 1로 인해 15는 연속하는 하나의 자연수, 15 약수가 3 : 3으로 인해 15는 5+5+5 의 합으로 표현되는 것을 알 수 있고 약간의 조작을 통해 4+5+6 (연속하는 자연수) 약수가 5 : 5도 마찬가지로 3+3+3+3+3 즉, 1+2+3+4+5 약수가 15 : 모든 홀수 2n+1는 n 과 n+1, 연속하는 두 수의 합으로 표현 할 수 있으므로..
파이썬 내장함수 capitalize, title, 첫글자 대문자 변환
# title() : 문장의 모든 단어의 첫 글자를 대문자로, 나머지는 소문자 # capitalize(): 문장의 첫 글자만 대문자로, 나머지는 소문자 s = "hello world, welcom to python" print(s.capitalize()) #result : 'Hello world, welcom to python' print(s.title()) #result : 'Hello World, Welcom To Python'