본문 바로가기

Algorithm89

파이썬 버블정렬 코드 버블 정렬에서 한번 정렬할때 마다 Pass라는 단위를 사용하는데 어떤 Element 끼리 교환이 이루어 졌고 결과가 어떻게 나왔는지 출력하고 Pass 단위로 list의 상태를 출력하게 코드를 짰다.. ans = [80, 50, 70, 10, 60, 20, 40, 30] n = len(ans) for i in range(n-1): for j in range(n-1): if ans[j] > ans[j +1]: print(ans[j], ans[j +1]) temp = ans[j + 1] ans[j + 1] = ans[j] ans[j] = temp print(ans[j], ans[j +1]) print() print(ans) # 한 PASS 2020. 8. 27.
[프로그래머스] K번째수 지문도 어렵지 않다.. 지문에서 오더한 대로 코딩만 하면 되는 부분 근데 인간과 컴파일러의 Index 기준이 다른것만 잘 커버하면 풀 수 있는 쉬운 문제.. 라기 보단 언어 연습문제?.. def solution(array, commands): answer = [] for i in range(len(commands)): temp = array[commands[i][0]-1:commands[i][1]] temp.sort() answer.append(temp[commands[i][2]-1]) return answer 2020. 8. 27.
[프로그래머스] 주식가격 이 문제는 약간 지문이 어렵다.. 설명이 좀 이상? 부실? 모르겠다 아무튼 그렇다.. 개인적으로 나는 코딩이 어렵지 않는 이상 배열을 여러개 쓰는걸 안좋아해서.. 주어지는 배열을 그냥 활용했다.. 근데 이게 얼마나 실용적일지는 모르겠음.. 오히려 마이너스 일 지도.. def solution(prices): leng = len(prices) for i in range(leng): temp = prices[i] count = 0 for j in range(i+1, leng): count = count +1 if temp > prices[j] : break prices[i] = count return prices 2020. 8. 27.
[프로그래머스] 전화번호 목록 이번에는 2단계 문제다 주어지는 리스트를 먼저 정렬을 하고 앞의 요소가 뒤의 요소의 접두어인 경우가 있으면 false를 아니면 true를 return하면 되는 문제 근데 여기서 포인트는 false인 경우가 한번이라도 있으면 false를 return하면 되기 때문에 바로 if 문에서 빠져 나올 수 있는 return False를 줬다 여기서 포인트는 파이썬에서 사용되는 Slice를 활용하면 갸꿀이라는 것 def solution(phone_book): phone_book.sort() for i in range(len(phone_book)-1): x = phone_book[i] y = phone_book[i+1] if x == y[:len(x)]: return False return True 2020. 8. 27.