susinlee 님의 블로그
[241128] TIL 본문
PYTHON
코드카타에서 문제를 푸는데 슬슬 어려워지기 시작했다. 시간이 걸리더라도 오늘처럼 노트에 코드프로세스 적어가면서 이해와 해결능력향상을 목적으로 풀어가자.
1. x를 n으로 나눈 나머지는 x를 n진법으로 표시했을 때 가장 오른쪽에 오는 친구다.
ex) 125 % 3 = 2. 125 = 11122(3)
몫 41을 또 3으로 나눈 나머지는 2 인데 이는 오른쪽에서 두번째에 위치한다 111'2'2(3)
int('11122', 3) = 125 로 3진법으로 표기된 문자열을 10진법으로 변환시킨다.
아래는 3진법으로 표기한 뒤 뒤집어서 다시 10진법으로 표기하는 코드다
def solution(n):
tmp = ''
while n:
tmp += str(n % 3) # 3진법으로 표기된 수를 뒤집어서 저장 '11122' → '22111'
n = n // 3
answer = int((tmp, 3))
return answer
2. 유클리드 호제법은 두 정수의 최대 공약수를 구하는 가장 효율적인 알고리즘 중 하나다
a > b 라고 했을 때
a와 b의 최대 공약수는 다음의 과정으로 구할 수 있다.
a를 b로 나눈 나머지는 b에 저장하고, 나눈 b는 a에 저장한다
b가 0이 될 때까지 반복한다. b = 0 일 때 a 값이 최대공약수가 된다.
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
a와 b의 최소공배수는 다음과 같이 구할 수 있다.
lcm = abs(a*b)/gcd(a, b)
3. 판다스에서 정제 및 응용 부분을 마무리했다.
아래는 헷갈렸던 부분이다.
axis = 0 : 행(row) 기준으로 동작 (세로 방향, 즉 인덱스 중심)
axis = 1 : 열(column) 기준으로 동작 (가로 방향, 즉 컬럼 중심)
drop 함수에서 axis는 대상을 선택
axis = 0 : 행을 대상으로 처리
axis = 1 : 열을 대상으로 처리
apply 함수에서 axis는 반복 기준
axis = 0 : 행에 대해서 연산 수행
axis = 1 : 열에 대해서 연산 수행
map() : 단일 컬럼, 즉 시리즈에만 적용 가능
apply() : 단일 또는 복수 컬럼, 즉 데이터프레임과 시리즈 모두에 적용 가능
'학습 > TIL' 카테고리의 다른 글
1주차 WIL (1) | 2024.11.29 |
---|---|
[241129] TIL (1) | 2024.11.29 |
[241127] TIL (0) | 2024.11.27 |
[241126] TIL (0) | 2024.11.26 |
[241125] TIL (0) | 2024.11.25 |