Coding test/Programmers[python]
-
Programmers[Lv.2] - N개의 최소공배수Coding test/Programmers[python] 2024. 2. 26. 21:04
https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def gcb(a, b): while b > 0: a, b = b, a % b return a def lcm(a, b): return a * b // gcb(a, b) def solution(arr): answer = arr[0] arr.sort() for i in range(1, len(arr)): answer = lcm(answer, arr[i]) return answer for문으로 arr를..
-
Programmers[Lv.2] - 구명보트Coding test/Programmers[python] 2024. 2. 26. 17:41
https://school.programmers.co.kr/learn/courses/30/lessons/42885# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(people, limit): answer = 0 people.sort() start = 0 end = len(people) - 1 while start limit: end -= 1 else: start += 1 end -= 1 answer += 1 if start == end: answer += 1 return answer 최대한 적은 구명보트를 사용하기 위해서는 보트에 ..
-
Programmers[Lv.2] - 카펫Coding test/Programmers[python] 2024. 2. 26. 01:55
https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import math def solution(brown, yellow): answer = [] for i in range(1, int(math.sqrt(yellow) + 1)): if yellow % i == 0: j = yellow // i if (i+2) * 2 + j * 2 == brown: answer = [j+2, i+2] break return answer 카펫, 보드판 .. 이런 유형..
-
Programmers[Lv.2] - 짝지어 제거하기Coding test/Programmers[python] 2024. 2. 26. 01:39
https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(s): stack = [] for x in s: stack.append(x) if len(stack) >= 2 and stack[-1] == stack[-2]: stack.pop() stack.pop() if stack: return 0 else: return 1 s 문자열을 하나씩 탐색하며 stack에 넣고 stack 에 같은 문자 두 번이 반복되면 stack에서 제거한다..
-
Programmers[Lv.2] - 숫자의 표현Coding test/Programmers[python] 2024. 2. 26. 01:35
https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(n): answer = 1 start, end = 1, 1 total = 0 while start n: total -= (start + end) start += 1 else: answer += 1 total -= (start + end) start += 1 return answer 투 포인터로 구현 start, end 값을 처음 시작할 자연수인 1로 초기화하고 값을 더해나간..
-
Programmers[Lv.2] - 올바른 괄호Coding test/Programmers[python] 2024. 2. 23. 19:26
https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(s): answer = True stack = [] for x in s: if x ==")" and stack and stack[-1] == "(": stack.pop() else: stack.append(x) if stack: return False return True
-
Programmers[Lv.2] - JadenCase 문자열 만들기Coding test/Programmers[python] 2024. 2. 23. 19:25
https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 def solution(s): answer = '' array = s.split(" ") print(array) for i, x in enumerate(array): if x != "": if x[0].isalpha(): array[i] = (x[0].upper() + x[1:].lower()) else: array[i] = x[0] + x[1:].lower() else: continue..
-
Programmers[Lv.1] - 가장 많이 받은 선물Coding test/Programmers[python] 2024. 2. 16. 20:14
https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(friends, gifts): n = len(friends) result = [0] * n dic = {key: 0 for key in friends} array = [[0] * n for _ in range(n)] for g in gifts: a, b = g.split(" ") array[friends.index(a)][friends.index(b)] += 1 dic[a..