공부/📝 프로그래머스(126)
-
3진법 뒤집기 - Python
1. 풀이 코드 def solution(n): temp_str = '' answer = 0 digit = 1 while n > 0: temp_str += str(n % 3) n //= 3 for i in temp_str[::-1]: answer += int(i) * digit digit *= 3 return answer # Test Cases print(solution(45)) print(solution(125)) 차근차근 진행했습니다. 2. 다른 사람 풀이 코드 def solution(n): tmp = '' while n: tmp += str(n % 3) n = n // 3 answer = int(tmp, 3) return answer int()에 이런 기능이 있었네요..? 프로그래머스: https:/..
2023.10.14 -
같은 숫자는 싫어 - Python
1. 풀이 코드 def solution(arr): temp = -1 answer = [] for item in arr: if temp == item: pass else: temp = item answer.append(item) return answer # Test Cases print(solution([1, 1, 3, 3, 0, 1, 1])) print(solution([4, 4, 4, 3, 3])) 위와 같이 이전의 값을 temp에 저장하여 비교하면서 반환 리스트를 만들었습니다. 2. 다른 사람 풀이 코드 # 문제가 개편되었습니다. 이로 인해 함수 구성이나 테스트케이스가 변경되어, 과거의 코드는 동작하지 않을 수 있습니다. # 새로운 함수 구성을 적용하려면 [코드 초기화] 버튼을 누르세요. 단, [코드..
2023.10.14 -
최대공약수와 최소공배수 - Python
1. 풀이 코드 # 유클리드 호제법 # 최대공약수 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, m): return [GCD(n, m), LCM(n, m)] # Test Cases print(solution(3, 12)) print(solution(2, 5)) 예전에 사용한 유클리드 호제법 코드를 가져왔습니다. 2. 다른 사람 풀이 코드 def solution(n, m): def gcd(a, b): return b if not a % b else gcd(b, a % b) def lcm(a, b): return a*b/..
2023.10.14 -
직사각형 별찍기 - Python
1. 풀이 코드 a, b = map(int, input().strip().split(' ')) [print("*" * a) for _ in range(b)] 위와 같이 풀었습니다. 2. 다른 사람의 풀이 코드 a, b = map(int, input().strip().split(' ')) print(("*" * a + "\n") * b) 저보다 더 나으면서 파이썬스러운 풀이를 발견했습니다. 한 가지를 배우게 되네요. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/12969 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요...
2023.10.14 -
문자열 다루기 기본 - Python
1. 풀이 코드 def solution(s): if len(s) == 4 or len(s) == 6: s = s.replace('1', '') s = s.replace('2', '') s = s.replace('3', '') s = s.replace('4', '') s = s.replace('5', '') s = s.replace('6', '') s = s.replace('7', '') s = s.replace('8', '') s = s.replace('9', '') s = s.replace('0', '') if len(s) != 0: return False else: return True else: return False # Test Cases print(solution("a234")) print(so..
2023.10.14 -
부족한 금액 계산하기 - Python
1. 풀이 코드 def solution(price, money, count): answer = (price * (count + 1)) * count / 2 - money return answer if answer >= 0 else 0 # Test Cases print(solution(3, 20, 4)) print(solution(3, 20, 1)) 위와 같이 등차수열의 합으로 계산하였습니다. 2. 다른 사람의 풀이 코드 def solution(price, money, count): return max(0,price*(count+1)*count//2-money) 저는 음수인 경우에 대해서 변수 선언을 한 뒤에 if()문을 사용했는데 max()를 사용하면 이렇게 깔끔하게 정리가 되네요. 대단합니다. 프로그래..
2023.10.14 -
약수의 개수와 덧셈 - Python
1. 풀이 코드 def divisor(n): count = 1 for i in range(1, n // 2 + 1): if n % i == 0: count += 1 return count def solution(left, right): return sum([item if divisor(item) % 2 == 0 else -item for item in range(left, right + 1)]) # Test Cases print(solution(13, 17)) print(solution(24, 27)) 위와 같이 새로운 함수 divisor()을 선언하여 풀었습니다. 약수의 개수를 직접 카운트합니다. 2. 다른 사람의 풀이 코드 def solution(left, right): answer = 0 for i..
2023.10.14