110 옮기기 (스택)
·
Coding Test/programmers
https://school.programmers.co.kr/learn/courses/30/lessons/77886 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 1. 배열 돌면서 '110' 전부 제거한 리스트 생성 (스택) 2. '1'이 연속되는 인덱스 구하기 3. '1'이 연속되는 인덱스 이전에 '110' 개수만큼 추가 '0 1 1 1 1 1 1 0 1 0' 1. 110전부 제거 : ['0', '1', '1', '1'] 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 2. 1이 연속되는 인덱스 : 3 3. 110' 개수만..
풍선 터트리기 (스택, 최솟값 비교, memoization)
·
Coding Test/programmers
https://school.programmers.co.kr/learn/courses/30/lessons/68646 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 배열의 양쪽의 최솟값 중 하나라도 자신보다 클 경우 끝까지 남을 수 있음 배열 인덱스 값마다 최솟값을 일일히 계산하면 시간초과 풀이 1. stack Time: 135.97 ms def solution(a): stack = [] for x in a: if len(stack) = 2 and stack[-2] < st..
괄호 회전하기 (스택)
·
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..
쿼드압축 후 개수 세기 (재귀)
·
Coding Test/programmers
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 배열의 길이가 1이 될 때 까지 4개로 나눔 (재귀) 4개로 나누는 시작 좌표, 길이를 매개변수로 하는 함수 생성 풀이 def solution(arr): answer = [0, 0] def quad(r,c,n): if len(arr) == 1: answer[arr[r][c]] += 1 return else: tg = arr[r][c] for i in range(n): for j in range(n): if arr[r+i][c+j] != tg: n=n//2 quad(r, c, n) quad(r, c+n, ..
[Python] 삼각 달팽이 (리스트 반시계 방향으로 채우기)
·
Coding Test/programmers
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  분석삼각형 리스트 생성채울 숫자 변수 선언n번 회전하므로 n번 반복3으로 나눠서 방향 체크 : 세 방향(아래쪽, 오른쪽, 위쪽)으로 채워지기 때문회전하면서 채워지는 길이는  n, n-1, n-2, ... ,1n=5인 경우, 5번 회전하면서(1,2,3,4,5) 방향 하(6,7,8,9) 방향 우 (10,11,12) 방향 상(13,14) 방향 하(15) 방향 우순서로 채워짐 풀이def solution(n): answer = [[0 for j in range(1, i+1)] for i in range(1,..
n^2 배열 자르기
·
Coding Test/programmers
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 전체 배열을 만들면 시간초과 (1 ≤ n ≤ 107) n=3 left=2 right=5 1 2 3 2 2 3 3 3 3 (0,0) (0,1) (0,2) (1,0) (1,1) (1,2) (2,0) (2,1) (2,2) max(0/3, 0%3) max(1/3, 1%3) max(2/3, 2%3) max(3/3, 3%3) max(4/3, 4%3) max(5/3, 5%3) max(6/3, 6%3) max(7/3, 7%3) max(8/3, 8%3) 풀이 def solution(n, left, right): answ..