파이썬에서는 2진수, 8진수, 10진수, 16진수로 쉽게 변환할 수 있도록 내장함수가 포함되어 있다. 하지만 3진수나 4진수와 같이 다른 진수로 변환하고자 한다면 직접 구현을 할 수 밖에 없다. 1. 파이썬 내장 함수 [PYTHON] 파이썬 10진수 변환(2진수,8진수,16진수) (tistory.com) 2. 10진수 → n진수 2-1. 10진수를 n진수로 변환하기(2진수-16진수) def convert_notation(n, base): T = "0123456789ABCDEF" q, r = divmod(n, base) return convert_notation(q, base) + T[r] if q else T[r] print(convert_notation(233, 3)) * divmod 함수 : [Pyt..
다음 예시와 같이 정수를 나눈 몫과 나머지를 동시에 구해야 할 때가 생긴다. 예) 7을 3으로 나눈 몫과 나머지를 구하시오. 보통의 경우 아래와 같이 몫과 나머지를 따로 구한다. a = 7 b = 5 print(a//b, a%b) divmod 파이썬에서는 몫과 나머지를 동시에 반환해주는 divmod 함수를 지원한다. a = 7 b = 5 print(divmod(a, b))# (1, 2) # unpacking 연산자(*)를 이용하는 경우 print(*divmod(a, b))# 1 2 주의 사항 무조건 divmod 함수를 사용하는 것이 좋은 방법은 아니다. 가독성이나, 팀의 코드 스타일에 따라서, a//b, a%b와 같이 쓸 때가 더 좋을 수 있다는 것을 알아두자. 또한, divmod 함수는 작은 숫자를 다..
combinations 리스트와 같은 iterable 객체에서 r개의 데이터를 뽑아 순서를 고려하지 않고 나열하는 모든 경우를 계산해준다. → 조합 combinations는 클래스이므로 객체 초기화 이후에는 리스트 자료형으로 변환하여 사용한다. 예) 리스트 ['A', 'B', 'C']에서 2개(r = 2)를 뽑아 순서에 상관없이 나열하는 모든 경우를 출력하시오. from itertools import combinations data = ['A', 'B', 'C'] result = list(combinations(data, 2)) print(result) # [('A', 'B'), ('A', 'C'), ('B', 'C')] 프로그래머스>Summer/Winter Coding(~2018)>소수 만들기 코딩테스..
소수란? 2보다 큰 자연수 중에서 1과 자기 자신을 제외한 자연수로는 나누어 떨어지지 않는 자연수 1. 2부터 n-1까지 모두 확인해보기 def is_prime_number(x): # 2부터 (x-1)까지의 모든 수를 확인 for i in range(2, x): # x가 해당 수로 나누어 떨어지면 if x % i == 0: return False # 나누어 떨어지는 경우가 없으면 return True 시간복잡도 : O(x) → x의 크기가 크면 비효율적 2. 2부터 제곱근까지만 확인해보기 예) 16의 약수 : [1, 2, 4, 8, 16] 해당 수를 살펴보면 가운데 수를 기준으로 대칭적으로 곱을 통해 16을 만들 수 있다. 이를 통해, 소수의 절반에 해당하는 제곱근까지만 살펴보면 소수 판별이 가능하다는 ..
zip 함수의 경우 두개 이상의 그룹의 데이터를 서로 엮어주는 파이썬의 내장 함수이다. zip 함수는 여러 개의 순회 가능한(iterable) 객체를 인자로 받고, 각 객체가 담고 있는 원소를 튜플의 형태로 차례로 접근할 수 있는 반복자(iterator)를 반환한다. 프로그래머스>월간코드챌린지시즌1>내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. def solution(a, b): return sum([x*y for x, y in zip(a,b)]) 두 정수 배열 a, b를 zip 함수를 이용하여 (a[0], b[0])과 같이 튜플의 형태로 사용할 수 있다. 따라서 해당 튜플에 for문을 이용하여 x, y..
1. 내장 함수 내장 함수는 프로그램 작성에 있어 가장 기본적이면서도 필수적인 기능을 포함하고 있으며, 별도의 import 명령어 없이 바로 사용할 수 있다. input(), print(), sum(), min(), max(), eval(), sorted() sum() : 리스트와 같은 iterable 객체가 입력으로 주어졌을 때, 모든 원소의 합을 반환한다. - iterable 객체 : 반복 가능한 객체 (리스트, 사전, 튜플 등) result = sum([1, 2, 3, 4, 5]) print(result) # 15 min() : 파라미터가 2개 이상 들어왔을 때 가장 작은 값을 반환한다. result = min(7, 3, 5, 2) print(result) # 2 max() : 파라미터가 2개 이상..
입력 받기 - input( ) input()의 경우 한 줄의 문자열을 입력 받도록 해준다. data = input() 입력받은 데이터를 정수형 데이터로 처리해야하는 경우 int() 함수를 사용한다. n = int(input()) 코딩 테스트>> 여러 개의 데이터를 입력받을 때는 데이터가 공백으로 구분되는 경우가 많다. 그래서 입력받은 문자열을 띄어쓰기로 구분하여 각각 정수 자료형의 데이터로 저장하는 코드의 사용 빈도가 매우 높다. data = list(map(int, input().split())) input()으로 입력받은 문자열을 split()을 이용해 공백으로 나눈 리스트로 변환한다. map을 이용해 해당 리스트의 모든 원소에 int() 함수를 적용한다. 최종적으로 그 결과를 list로 다시 바꿔준..
코딩 테스트>> 코딩 테스트에서 테스트 케이스(Test Case)가 입력된 뒤에 테스트 케이스만큼 특정한 알고리즘을 수행한 결과를 반복적으로 출력하도록 요구하는 문제가 출제되는 경우가 많다. 이러 때 문제를 푸는 코드를 함수화하면 매우 효과적으로 풀 수 있다. 함수 (function) def 함수명(매개변수): 실행할 소스코드 return 반환 값 예) 더하기 기능을 제공하는 함수 def add(a, b): return a + b print(add(3, 7)) # 10 동일한 함수를 return문 없이 작성하는 경우 아래와 같이 작성할 수 있다. def add(a, b): print("함수의 결과: ", a + b) add(3, 7) # 함수의 결과: 10 함수를 호출하는 과정에서 같이 인자(Argume..
코딩 테스트>> 반복을 사용할 때 while문, for문 둘 다 사용해도 상관 없지만, 코딩 테스트에서의 실제 사용 예시를 확인해보면, 대부분의 경우에서 for문의 소스코드가 더 짧은 경우가 많다. while 문 예) 1부터 9까지 각 정수의 합을 계산하는 경우 i = 1 result = 0 while i = 80: print(i + 1, "번 학생은 합격입니다.") 반복문의 중첩 예) 구구단 for i in range(2, 10): for j in range(1, 10): print(i, "X", j, "=", i * j) print()
if 문 if ~ elif ~ else 와 같이 사용하며, elif 혹은 else 부분은 경우에 따라서 사용하지 않아도 된다. score = 85 if score >= 90: print("A") elif score >= 80: print("B") print("분발하세요.") elif score >= 70: print("C") else: print("F") # B # 분발하세요. 조건문을 작성할 때는 코드의 블록(Block)을 들여쓰기로 설정한다. 들여쓰기가 같은 부분은 함께 실행된다. 조건문의 특성 pass 문 파이썬에서는 조건문의 값이 참(True)이라고 해도, 아무것도 처리하고 싶지 않을 때 pass 문을 이용할 수 있다. if score >= 80: pass # 나중에 작성할 코드 else: pri..