문법을 제대로 모르는 상태에서 알고리즘을 푸려고 하니, 자꾸 에러가 떠서 시간이 오래 걸렸다.😂😂
그래서 velog에 올리는 김에, 문법들도 같이 정리해보려고 한다!
문자열을 나눌 때 사용한다. 괄호 안에 아무것도 넣지 않으면 공백(띄어쓰기, 탭 등)을 기준으로 문자열을 나눈다. 나누어진 값은 리스트의 요소로 저장되는데, 분할된 문자의 개수만큼 각각을 변수로 지정하는 것도 가능하다.
test = 'Hello world : 헬로 월드'
A, B = test.split(sep=':')
print(A)
print(B)
# --출력값--
# Hello world
# 헬로 월드
위의 예시를 보면, ' : ' 기호를 기준으로 두 개의 문자로 나누었다.
A, B 두 개의 변수에 따로 저장을 했지만, 만약 하나의 변수에 저장하고자 한다면, 리스트 타입으로 저장된다.
파이썬의 내장 함수인 map()는 여러 개의 데이터를 한 번에 다른 형태로 변환하기 위해서 사용된다. 따라서, 여러 개의 데이터를map(변환 함수, 순회 가능한 데이터) 담고 있는 list나 tuple을 대상으로 주로 사용하는 함수다.
# 기본 문법 map(변환 함수, 순회 가능한 데이터)
map() 함수는 두번째 인자로 넘어온 데이터가 담고 있는 모든 데이터에 변환 함수를 적용하여 다른 형태의 데이터를 반환한다.
list(map(lambda a: a*2, [1, 2, 3, 4])) # 출력값 : [2, 4, 6, 8]
map() 함수는 map 타입으로 결과를 리턴한다.
-> map() 함수의 결과값을 list나 tuple로 사용해야 할 경우, list() 내장 함수나 tuple() 내장함수를 사용하자.
n, k = map(int, input().split())
list = []
for i in range(1, n+1):
if n % i == 0:
# 약수
list.append(i)
if len(list) < k:
print(0)
else:
print(list[k-1])
코드 보러 가기 👉 2501.py
문제에 N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. 이라는 조건이 있어서 코드에도 반영하는 줄 알고, 시간을 소비했다..😓
꾸준히 연습하면서 푸는 방법을 연습해야겠다!!
피드백은 언제나 환영입니다.💛
[참고 사이트]
https://velog.io/@suasue/Python-map-%ED%95%A8%EC%88%98
https://ooyoung.tistory.com/14