[프로그래머스] / [Level 2] / [Python] 덧칠하기
·
Coding Test/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 다시 칠해야하는 영역(section)을 하나씩 검토하며 기준(paint_start)에서 m - 1 만큼 더한 값이 페인트가 칠해진 범위이므로 이 범위 내에 다시 칠해야하는 영역이 있다면 pass, 그렇지 않다면 기준을 현재 탐색하는 영역으로 바꿔줍니다. def solution(n, m, section): answer = 1 paint_start = section[0] for sec in sect..
[프로그래머스] / [Level 2] / [Python] 뒤에 있는 큰 수 찾기
·
Coding Test/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 완전 탐색을 사용하여 해결하였다. def solution(numbers): answer = [-1] * len(numbers) for i in range(len(numbers)-1, -1, -1): for j in range(i-1, -1, -1): if numbers[j] >= numbers[i]: break answer[j] = numbers[i] return answer 조금 더 효율적인 ..
[프로그래머스] / [Level 2] / [Python] 숫자 변환하기
·
Coding Test/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr BFS를 활용하여 해결하였습니다. append 하는 부분에서 이전에 확인했던 값이 들어있는 경우가 많아 check 배열을 만들어 확인하지 않은 숫자들만 append를 진행하도록 하였습니다. 애초에 arr을 set으로 설정하고 풀이해도 괜찮을 것 같습니다. from collections import deque def solution(x, y, n): if x == y: return 0 answer..
[프로그래머스] / [Level 2] / [Python] 숫자 카드 나누기
·
Coding Test/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/135807 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr gcd를 구하는 함수를 사용하여 리스트의 gcd를 구해 조건을 비교하여 해결하였다. def gcd(a, b): a, b = min(a, b), max(a, b) while b: a, b = b, a % b return a def list_gcd(arr): a = arr[0] for b in arr[1:]: a = gcd(a, b) return a def solution(arrayA, arrayB..
[프로그래머스] / [Level 2] / [Python] 점찍기
·
Coding Test/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/140107 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2중 for문을 돌면서 하나씩 검사하는 방법은 시간초과를 출력하기 때문에 1개의 for문을 사용해야 한다. 찍을 수 있는 점 x를 구해 y의 최대값을 피타고라스 정의를 통해 구합니다. \(y^2 = r^2 - x^2\) def solution(k, d): answer = 0 for x in range(0,d+1,k): res = int((d**2 - x**2)**0.5) answer += (re..
[프로그래머스] / [Level 2] / [Python] 택배상자
·
Coding Test/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/131704# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 리스트에서 원소를 찾기 위해 in or find를 사용하면 시간초과가 날 확률이 매우 높아진다 주의하자 ! from collections import deque def solution(order): answer = 0 main = deque([i for i in range(1, len(order)+1)]) sub = deque() for o in order: if len(main) > 0 an..
[프로그래머스] / [Level 2] / [Python] 롤케이크 자르기
·
Coding Test/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr set 함수를 통해 중복을 제거하면서 비교하여 답을 구했지만, 시간초과를 출력하였습니다. def solution(topping): answer = 0 for i in range(1, len(topping)-2): A = set(topping[:i]) B = set(topping[i:]) if len(A) == len(B): answer += 1 return answer 해결 방법으로 dict에 ..
[프로그래머스] / [Level 2] / [Python] 할인 행사
·
Coding Test/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 꼼꼼히 읽어야 한다! from copy import deepcopy def solution(want, number, discount): answer = 0 if len(discount) < 15: discount = discount + discount[:15-len(discount)] B = dict() for w, n in zip(want, number): B[w] = n T = dee..
욱근욱
'Coding Test/프로그래머스' 카테고리의 글 목록 (8 Page)