Engineering WIKI
-
[프로그래머스] 콜라츠 추측Engineering WIKI/Programmers 2022. 4. 27. 16:17
코딩테스트 연습 - 콜라츠 추측 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2 programmers.co.kr 내풀이 (성공) def check_even(num): if num % 2 == 0: num = num // 2 else: num = (num * 3) + 1 return num def solution(num): if num == 1: return 0 else: for i in range(501): num = check_even(num) if num == 1: return i + 1 if i == 500: return -1 다른방법 ..
-
[프로그래머스] 최대공약수와 최소공배수Engineering WIKI/Programmers 2022. 4. 26. 15:44
코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 내풀이 (성공) def solution(n, m): answer = [] # GCD for i in range(min(n, m), 0, -1): if n % i == 0 and m % i == 0: answer.append(i) break # LCM for j in range(max(n, m), (n * m) + 1): if j % n == 0 and j % m == 0: answer.append(j) break return an..
-
파이썬 property(), @propertyEngineering WIKI/Python 2022. 4. 25. 09:43
파이썬에 내장되어 있는 property() 함수와 @property 데코레이터에 대해서 알아보겠습니다. 필드명 사람의 이름, 성, 나이 데이터를 담기 위한 간단한 클래스를 하나 작성해보겠습니다. 아래 Person 클래스는 이름 first_name, last_name, age 이렇게 3개의 필드로 이루어져 있습니다. class Person: def __init__(self, first_name, last_name, age): self.first_name = first_name self.last_name = last_name self.age = age Person 클래스의 인스턴스를 생성 후에, 현재 필드 값을 읽거나 새로운 필드 값 쓰는 것은 매우 자유롭습니다. >>> person = Person("Joh..
-
[프로그래머스] 짝수와 홀수Engineering WIKI/Programmers 2022. 4. 25. 09:28
코딩테스트 연습 - 짝수와 홀수 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예 num return 3 "Odd" 4 "Even" programmers.co.kr 내풀이 (성공) def solution(num): if num % 2 == 0: return "Even" else: return "Odd" 다른방법 1 def evenOrOdd(num): return ["Even", "Odd"][num & 1] #아래는 테스트로 출력해 보기 위한 코드입니다. print("결과 : " + evenOrOdd(3)) print("결과 : " + evenOrOdd(2))..
-
[프로그래머스] 제일 작은수 제거하기Engineering WIKI/Programmers 2022. 4. 25. 09:23
코딩테스트 연습 - 제일 작은 수 제거하기 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1 programmers.co.kr 내풀이 (실패) def solution(arr): if len(arr) == 1: answer = [-1] else: answer = sorted(arr, reverse=True)[:-1] return answer 내풀이 (성공) def solution(arr): if len(arr) > 1: arr.remove(min(arr)) return arr else: return [-1] 다른방법 1 def rm_smal..
-
[프로그래머스] 정수 제곱근 판별Engineering WIKI/Programmers 2022. 4. 24. 09:23
코딩테스트 연습 - 정수 제곱근 판별 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함 programmers.co.kr 내풀이 (성공) def solution(n): answer = 0 sqrt_val = n ** 0.5 if sqrt_val == int(sqrt_val): answer = (sqrt_val + 1) ** 2 else: answer = -1 return answer 다른방법 1 import math def nextSqure(n): # 함수를 완성하세요 return 'no' if not math.sqrt(n).is_integer() e..
-
[프로그래머스] 정수 내림차순으로 배치하기Engineering WIKI/Programmers 2022. 4. 22. 11:36
코딩테스트 연습 - 정수 내림차순으로 배치하기 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이 programmers.co.kr 내풀이 (성공) def solution(n): answer = sorted(list((map(str, str(n)))), reverse = True) return int(''.join(answer)) 다른방법 1 def solution(n): ls = list(str(n)) ls.sort(reverse = True) return int("".join(ls)) 다른방법 2 def solution(n): return ..
-
파이썬 비트 논리연산자Engineering WIKI/Python 2022. 4. 21. 10:25
비트 연산자 사용하기 컴퓨터는 2진수(0과 1)를 사용하므로 대부분의 프로그래밍 언어는 2진수를 다루는 연산자를 제공합니다. 그런데 2진수로 변환하는 방법을 잘 모른다면 어떻게 해야 할까요? 걱정하지 않아도 됩니다. 파이썬에서는 간단하게 2진수와 10진수를 서로 변환할 수 있습니다. 10진수와 2진수 변환하기 10진수를 2진수로 된 문자열로 변환할 때는 bin을 사용합니다. 반대로 2진수에서 10진수로는 입력 즉시 변환됩니다. bin(정수) bin(13) # 10진수 13을 2진수로 변환 # '0b1101' 0b1101 # 2진수 1101을 10진수로 변환 # 13 만약 2진수가 문자열 형태라면 int에 문자열과 2를 지정하여 10진수로 변환할 수 있습니다. 그리고 코드에서 2진수를 직접 입력할 때는 맨..