여행과 독서와 프로그래밍

고정 헤더 영역

글 제목

메뉴 레이어

여행과 독서와 프로그래밍

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (78)
    • 알고리즘 공부 (26)
    • 프로그래밍 (27)
    • 독서 (0)
    • 여행 (0)
    • 주식 리포트 (9)
    • 기타 (2)

검색 레이어

여행과 독서와 프로그래밍

검색 영역

컨텐츠 검색
[프로그래머스] 스킬트리 파이썬

어라.. 왜 한 번에 풀었지? 시간 복잡도는 O(N^2)이다. 어떻게 구현하지 생각하다가 .index()를 생각했다. 아래는 개자 작성한 코드 주석을 달아놨다. def solution(skill, skill_trees): answer = 0 for tree in skill_trees: lev = 0 #선행스킬을 아무것도 안 배움 bol = True #for문 다 돈 다음 무사 통과했는지 확인 for sk in tree: if (sk in skill): if skill.index(sk)

알고리즘 공부 2021. 3. 25. 11:53

프로그래머스 주식가격 파이썬

문제가 좀 이상하다. 문제가 이상하기 보다는 이해하는데 좀 껄끄럽다. 다음 인덱스에서 가격이 떨어지면 1초간 가격이 안 떨어진 것으로 이해하면 된다. 그렇게 해서 난 그냥 마지막 인덱스는 아에 비교도 안해버렸다. def solution(prices): answer = [] for_prices = prices[0:len(prices) - 1] #인덱스 범위를 위해 마지막 인덱스는 for문에 넣지 않음 for index, num in enumerate(for_prices): #인덱스 범위를 위해 마지막 인덱스는 for문에 넣지 않음 up_price = 1 for i in range(index + 1, len(for_prices)): if num

알고리즘 공부 2021. 3. 25. 11:20

프로그래머스 모의고사 파이썬

일단 이렇게 풀었다. 너무 난잡해 보여서 다른 사람들의 코드를 한 번 봐야지일단 이렇게 풀었다. 너무 난잡해 보여서 다른 사람들의 코드를 한 번 봐야지 def solution(answers): solve = [] one = 0 two = 0 three = 0 one_list = [1,2,3,4,5] two_list = [2,1,2,3,2,4,2,5] three_list = [3,3,1,1,2,2,4,4,5,5] for i in range(len(answers)): if answers[i] == one_list[i%5]: one += 1 if answers[i] == two_list[i%8]: two += 1 if answers[i] == three_list[i%10]: three += 1 sample =..

알고리즘 공부 2021. 3. 23. 22:33

프로그래머스 더 맵게 파이썬

파이썬 내장 함수인 heapq 를 사용하여 동일하게 돌렸더니 되었다. 파이썬의 heapq와 heap에 대해 공부를 해서 작성해야지 import heapq def solution(scoville, K): answer = 0 heapq.heapify(scoville) while scoville[0] < K and len(scoville) != 1 : answer += 1 rank = heapq.heappop(scoville) + heapq.heappop(scoville) * 2 heapq.heappush(scoville,rank) if len(scoville) == 1 and scoville[0] < K: return -1 return answer

알고리즘 공부 2021. 3. 23. 15:32

프로그래머스 더 맵게 파이썬

def solution(scoville, K): answer = 0 #모든 지수가 k이상 -> 가장 작은게 K 이상? 이렇게 한 번 해볼까 scoville.sort() while scoville[0] < K: min_sc = scoville.pop(0) min_sc2 = scoville.pop(0) * 2 scoville.append(min_sc + min_sc2) scoville.sort() answer += 1 if len(scoville) == 1 and scoville[0] < K: return -1 return answer 이렇게 처음에 작성했는데 문제는 효율성 테스트를 하나도 통과하지 못 한다.

알고리즘 공부 2021. 3. 23. 13:54

다리를 지나는 트럭 파이썬

아오 이건 며칠간 고민했는데 못 풀었다. out of index로 싸움하고 나중에는 음 만약 길이 2인 다리를 차 1대만 지나가면 2초가 아니라 총 3초가 필요한데 그 다음부터는 2초면 끝난다. 이걸 또 어떻게 처리할까로 고민하다 너무 짜증나서 그냥 답을 봐버렸다. 답 보고 공부나 해야지. 내 실력이 이것 밖에 안되니 더 열심히 해야겠다. 할 것도 많은데 자꾸 시간 낭비를 어디선가 한다. 최대한 낭비를 줄이자. 아래는 내 코드인데 계속 이런 식으로 접근했다. 머 class도 써보고 별의 별 방식으로 접근했다. def solution(bridge_length, weight, truck_weights): time = 0 end_num = len(truck_weights) time_num = 0 end_lis..

알고리즘 공부 2021. 3. 23. 00:14

프로그래머스 전화번호 목록 python

def solution(phone_book): answer = True phone_book = sorted(phone_book) for index in range(len(phone_book)-1): if(phone_book[index] == phone_book[index + 1][:len(phone_book[index])]): return False return answer 생각해보니 정렬을 하면 바로 앞의 번호가 뒤 번호의 접두어가 아니면 그 뒤부터는 절대 아니니 확인할 필요가 없다! 블로그 보며 알아서 내 코드를 고쳤다. startswitch를 이용하면 더 깔끔하게 풀 수 있다! def solution(phone_book): phone_book.sort() for p1, p2 in zip(phone_..

알고리즘 공부 2021. 3. 17. 12:32

프로그래머스 - 전화번호 목록

def solution(phone_book): answer = True phone_book = sorted(phone_book) for i, number in enumerate(phone_book): for index in range(i + 1, len(phone_book)): if(number == phone_book[index][:len(number)]): return False return answer 다 통과 되는데 효율성 3,4가 안된다. 해쉬로 안풀어서 그런가..

알고리즘 공부 2021. 3. 17. 12:14

추가 정보

인기글

최신글

페이징

이전
1 2 3 4
다음
TISTORY
여행과 독서와 프로그래밍 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바