susinlee 님의 블로그

[241128] TIL 본문

학습/TIL

[241128] TIL

susinlee 2024. 11. 28. 21:00

 

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