Algorithm practice
→ Basic Skill

n의 제곱근 구하기

제곱근 = n ** (1/2)

자연수인지 확인 방법

자연수 if n % 1 == 0

자연수 n을 뒤집은 배열형태로

# ex) 1234 →  [4,3,2,1]
list(map(int, reversed(str(n))))

대소문자 상관없이 특정 문자 갯수 찾기

# 방법1
갯수 = 문자열.lower().count(찾을문자)

# 방법2
from collections import Counter
c = Counter(문자열.lower())
갯수 = c[찾을 문자]

정수 각 숫자 정렬

# 오름차순 방법 1
배열.sort()
# 오름차순 방법 2
sorted(배열)

# 내림차순 방법 1
배열.sort(reverse=True)
# 내림차순 방법 2
sorted(배열, reverse=True)

 sort는  자체만으로 정렬된 값을 배열에 할당하고 return값은 None 이기 때문에
배열 = 배열.sort() 이런식으로 하게되면 배열에는 None이 할당되는  주의.

정수를 각 자리의 수로 이루어진 배열로 만드는 방법

# 방법 1
list(map(int, str(x)))

# 방법 2
[int(c) for c in str(n)]

※ https://www.daleseo.com/python-map/

a부터 b까지 1씩 증가하는 배열 만들기

list(range(a, b+1))
# ex: list(range(1, 4))
# 결과 : [1,2,3]

a부터 b까지 3씩 증가하는 배열 만들기

list(range(a, b+1, 3))
# ex: list(range(1, 11, 3))
# 결과 : [1,4, 7, 10]

# 단순히 while문 사용하는 방식보다는 약 2.5배 가량 더 속도효율

값의 크기 비교 후 변수 할당 정렬

# before
if a < b :
  small = a
  large = b
else :
  small = b
  large = a
    
# after
if a > b: a, b = b, a

배열에서 가장 작은 수 삭제

# 최소값 '모두' 삭제
[i for i in mylist if i > min(mylist)]
  
# 최소값 가장 처음에 검색되는 요소만 삭제
mylist.remove(min(mylist))

# 아래처럼 pop을 사용하게되면 메모리 낭비를 초래할 수 있다고 함(?)
mylist.pop(mylist.index(min(mylist)))

문자열 N의 길이가 4 혹은 6 이면서 ‘‘숫자’‘로 이루어져있는지 확인 방법

N.isdigit() and len(s) in (4, 6)

# ex) 문자열 test = "1234"
# print(test.isdigit()) → 결과 : True

최대공약수 & 최소공배수 구하기

def solution(n, m):
    answer = []
    if n > m : n, m = m, n 
    
    for i in range(n,0,-1):
        if n%i ==0 and m%i==0:
            answer.append(i)
            break

    for i in range(m,(n*m)+1):
        if i%n==0 and i%m==0:
            answer.append(i)
            break
    
    return answer

Leave a comment