공부/📝 프로그래머스(126)
-
피자 나눠 먹기 (2) - Python
# 유클리드 호제법 # 최대공약수 def GCD(x, y): while y: x, y = y, x % y return x # 최소공배수 def LCM(x, y): result = (x * y) // GCD(x, y) return result def solution(n): answer = LCM(n, 6) / 6 return answer # Test Cases print(solution(6)) print(solution(10)) print(solution(4)) math 라이브러리의 gcd 함수가 있는 것은 알고 있지만... 이렇게 다시 푼 이유가 있습니다. import math def solution(n): return math.lcm(n, 6) / 6 # Test Cases print(solution(..
2023.09.19 -
피자 나눠 먹기 (1) - Python
def solution(n): a, b = divmod(n, 7) answer = a + int(bool(b)) return answer # Test Cases print(solution(7)) print(solution(1)) print(solution(15)) divmod()를 한번 써보고 싶었습니다. def solution(n): return (n + 6) // 7 그런데 깔끔한 풀이를 발견했습니다. 범위를 늘리면 되는 일이었는데 이상한 욕심에 눈이 멀었네요. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/120814 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고..
2023.09.19 -
짝수는 싫어요 - Python
def solution(n): answer = [] for i in range(n + 1): if i % 2: answer.append(i) else: pass return answer # Test Cases print(solution(10)) print(solution(15)) 생각없이 풀었는게 티가 나네요... def solution(n): return [i for i in range(1, n+1, 2)] 다른 사람의 풀이입니다. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/120813 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기..
2023.09.19 -
최빈값 구하기 - Python
def solution(array): answer = -1 num_list = [0 for _ in range(1001)] for item in array: num_list[item] += 1 max_appear = max(num_list) for i in range(1001): if max_appear == num_list[i]: if answer == -1: answer = i else: answer = -1 break return answer # Test Cases print(solution([1, 2, 3, 3, 3, 4])) print(solution([1, 1, 2, 2])) print(solution([1])) 제 풀이는 위와 같습니다. 아래는 세부 설명입니다. num_list = [0 fo..
2023.09.19 -
나머지 구하기 - Python
def solution(num1, num2): answer = num1 % num2 return answer # Test Cases print(solution(3, 2)) print(solution(10, 5)) 특이한 풀이는 아닙니다. def solution(num1, num2): return divmod(num1, num2)[1] 기술하는 이유는 다른 사람의 풀이 중 divmod()를 보았기 때문입니다. 파이썬의 내장함수인 divmod(x, y) 는 x를 y로 나누어 (몫, 나머지)로 값을 리턴합니다. 위 풀이의 경우, 나머지를 출력하기 위해 뒤에 [1]을 붙였습니다. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/120810 프..
2023.09.19 -
분수의 덧셈 - Python
# 유클리드 호제법 # 최대공약수 def GCD(x, y): while y: x, y = y, x % y return x # 최소공배수 def LCM(x, y): result = (x * y) // GCD(x, y) return result def solution(numer1, denom1, numer2, denom2): answer = [] temp_numer = numer1 * denom2 + numer2 * denom1 temp_denom = denom1 * denom2 temp_GCD = GCD(temp_numer, temp_denom) answer = [temp_numer/temp_GCD, temp_denom/temp_GCD] return answer # Test Cases print(solut..
2023.09.17 -
몫 구하기 - Python
def solution(num1, num2): answer = num1 // num2 return answer # Test Cases print(solution(10, 5)) print(solution(7, 2)) 신기한 풀이를 발견했습니다. solution = int.__floordiv__ int.__floordiv__ 은 Python에서 정수 타입의 객체 간에 나눗셈 연산을 수행할 때 사용되는 내장 메서드(built-in method) 중 하나라고 합니다. 다른 말로는 바닥 나눗셈(floor division)이라고 한다네요. 처음 봅니다. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/120805
2023.09.16