괄호 회전하기 (스택)
·
Coding Test/programmers
https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr s를 왼쪽으로 x (0 ≤ x < (s의 길이)) 칸만큼 회전시켰을 때 s가 올바른 괄호 문자열이 되게 하는 x의 개수를 return def solution(s): answer = 0 n=len(s) pair={'(':')', '{':'}','[':']'} for i in range(n): # 문자열 인덱스 stack=[] flag=True for j in range(n): # 왼쪽으로 회전 tm..
혼자 놀기의 달인 (리스트 인덱스, 값 union)
·
Coding Test/programmers
https://school.programmers.co.kr/learn/courses/30/lessons/131130 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 상자번호 1 2 3 4 5 6 7 8 카드번호 8 6 3 7 2 5 1 4 1. 상자를 열어서 카드 번호 확인 후 temp 리스트에 저장 2. 방문 한 상자 번호가 아닌 경우 상자 열어서 카드 번호 temp 리스트에 저장 반복 : 숫자에 해당하는 번호를 가진 상자를 계속해서 열어가며, 열어야 하는 상자가 이미 열려있을 때까지 반복합니다. 3. 저장을 반복하면서 temp 리스트에 이미 있는 ..
멀쩡한 사각형 (최대공약수)
·
Coding Test/programmers
https://school.programmers.co.kr/learn/courses/30/lessons/62048 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 1. 가로 세로 최대공약수 구하기 2. 작은 직사각형 가로 세로 구하기 : 가로/최대공약수, 세로/최대공약수 2. 작은 직삭각형 빈칸 크기 : 작은 직사각형 가로 + 작은 직사각형 세로 - 1 전체 직사각형 빈칸 크기 : 작은 직사각형 빈칸 크기 * 최대공약수 3. 전체 크기에서 빈칸 크기 빼기 가로 8, 세로 12 1. 가로 세로 최대공약수 : 4 2. 작은 직사각형 가로 : 8/4 = 2..
숫자 카드 나누기 (최대공약수)
·
Coding Test/programmers
https://school.programmers.co.kr/learn/courses/30/lessons/135807 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 1. 각 배열의 최대공약수 구하기 2. 최대공약수로 다른 배열의 숫자가 나눠지는지 확인하기 3. 최대값 리턴 풀이 import sys,math def solution(arrayA, arrayB): def find(array): #최대공약수 GCD = 0 for i in range(len(array)): GCD = math.gcd(GCD, array[i]) return GCD def chec..
점 찍기 (피타고라스)
·
Coding Test/programmers
https://school.programmers.co.kr/learn/courses/30/lessons/140107 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 원점 (0,0)으로부터 반원에 들어가는 점 1 ≤ k ≤ 1,000,000이므로 완전 탐색하면 시간 초과 x축을 기준으로 y값 구하기 d² + x² = y² 풀이 import math def solution(k, d): answer = 0 for x in range(0, d+1, k): y= math.sqrt(d*d - x*x) # 피타고라스 answer += y//k + 1 return ..
배달 (플로이드 워셜)
·
Coding Test/programmers
https://school.programmers.co.kr/learn/courses/30/lessons/12978 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 https://karla.tistory.com/29 [11404번] 가장 빠른 버스 노선 구하기(그래프, 최단거리 , 플로이드) 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 karla.tistory.com 풀이 import sys def..