목록파이썬 (22)
유자차의 재테크 공부방
map함수를 통해서 두 변수를 동시에 가져올 수 있다. A = [1,2,3] B = [4,0,8] ans = 0 for i,j in zip(A,B): ans += i*j print(ans) # 28 = 4+0+24

프로그래머스 Lv1. 햄버거 만들기 [문제] 풀이 방법 1(실패) replace() 사용 -> 시간초과 def solution(ingredient): answer=0 ingredient = "".join(str(i) for i in ingredient) # list to string while ingredient.find("1231") != -1: ingredient = ingredient.replace("1231", "",1) answer+=1 return answer 풀이방법 2(성공) index를 사용해서 4개씩 보고 맞으면 del로 삭제. 삭제시킨 index-2부터 4개씩 확인 필요 ex) 12123131 index-3 불가능. 1231231이기때문에 이미 충족이 되어버려 앞부분 없어짐. def ..
문제 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있으며, 다리는 weight 이하까지의 무게를 견딜 수 있습니다. 단, 다리에 완전히 오르지 않은 트럭의 무게는 무시합니다. 예를 들어, 트럭 2대가 올라갈 수 있고 무게를 10kg까지 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 경과 시간다리를 지난 트럭다리를 건너는 트럭대기 트럭 0 [] [] [7,4,5,6] 1~2 [] [7] [4,5,6] 3 [7] [4] [5,6] 4 [7] [4,5] [6] ..
문제 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니다. 입출력 예pricesreturn [1, 2, 3, 2, 3] [4, 3, 1, 1, 0] 입출력 예 설명 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다. 2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다. 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다. 4초 시점의 ₩2은 1초간 가격이 떨어지지 않았습니다. 5초 시점의 ₩3은 0초간 ..
파이썬 메모리 관리 방법 1 - 레퍼런스 카운팅 방법 2 - 세대별 가비지 컬렉션

tqdm의 tqdm.pandas를 사용하면 progress_apply통해 dataframe에 apply가 얼마나 진행되었는지 볼 수 있다. df가 좌측과 같다고 할 때 일반적으로 apply를 사용할 때, df = df.apply(func, axis=1) print(df) progress_apply를 통해 진행률을 볼 때 from tqdm import tqdm tqdm.pandas() df = df.progress_apply(func, axis=1) # df.progress_apply(적용할 것, 적용방향) print(df)
이중 정렬이라고 표현을 했는데 2가지 항목으로 정렬을 하는 방법과 2가지 항목을 다른 정렬 방법으로 정렬하는 방법을 알려 드리겠습니다. 데이터 요소 기준으로 정렬 => 요소1 기준으로 오름차순 후 동일한 것이 있다면 요소2 기준으로 오름차순 sorted(정렬할 리스트, key=lambda x : (정렬할 요소1, 정렬할 요소2)) data = [(1,"d"), (2,"c"), (3,"b"), (1,"a"), (3,"d"), (1,"f")] res = sorted(data, key=lambda x : (data[0], data[1])) # 출력결과 : [(1,"a"), (1,"d"), (1,"f"), (2,"c"), (3,"b"), (3,"d")] 정렬이 서로 다르게 정렬이 해야할 때 => 요소 1 기준으..
숫자를 올림하기 위해서 math라이브러리를 사용하였습니다. 프로그래머스에서 코테 연습하던 중 다른 사람의 풀이를 보고 math를 사용하지 않고 올림을 사용할 수 있는 방법을 발견하였습니다. 음수를 사용하는 것이였습니다. 라이브러리를 부르지 않고 이렇게 사용할 수 있다니 좋은 아이디어인 것 같습니다. # 일이 10이고 하루에 3만큼 일한다고 했을 때, 며칠 뒤에 일을 끝나는가? total = 10 speed = 3 ####################### 기존 ###################### import math math.ceil(total/speed) # 4 ####################### 음수 사용 ###################### -(-total//speed) # 4
정렬을 할때, 여러가지 기준으로 정렬을 해야할 때가 있습니다. lambda를 사용하면, 한 번에 여러가지 기준으로 정렬을 할 수있습니다. sort(key= lambda x: ([첫번째 기준], [두번째 기준])) # 문자 순 정렬, 문자 동일한 경우 앞의 번호 순으로 정렬 s = ["2 A", "1 B", "4 C", "1 A"] s.sort(key= lambda x: (x.split()[1], x.split()[0])) # ['1 A', '2 A', '1 B', '4 C'] # 숫자 순 정렬, 숫자 동일한 경우 앞의 문자 순으로 정렬 s = ["2 A", "1 B", "4 C", "1 A"] s.sort(key= lambda x: (x.split()[0], x.split()[1])) #['1 A', '..
문자열을 뒤집는 여러가지 방법들 첫번째 방법은 포인터를 활용하는 것과 같이 양끝의 문자열을 바꾸어주며 뒤집음 def reverseString(s): left, right = 0, len(s)-1 while left < right: s[left], s[right] = s[right], s[left] left+=1 right-=1 return s 두번째 방법은 리스트의 reverse() 기능을 사용하여, 뒤집어 줍니다. def reverseString(s): s.reverse() return s 세번째 방법은 슬라이싱을 사용하여 뒤집어 줍니다. def reverseString(s): s = s[::-1] # s[:] = s[::-1]로도 가능 return s