본문 바로가기

분류 전체보기

(120)
[프로그래머스] H-index def solution(citations): citations.sort(reverse=True) answer = 0 for h in range(len(citations), 0, -1): if citations[h-1]>=h: answer = h break return answer sort와 sorted는 여전히 헷갈린다. 특히 싸이테이션이 모두 0일때를 예외처리하지 않아서 테스트16에서 자꾸 걸렸었다. 이런 예외를 잡으려고 answer=0으로 잡아주고 한 것으로 막을 수 있었다. 내가 찾아 너무 뿌듯하다. . . 타 풀이도 나와 비슷했는데, 그 중에 또 왠 괴수분께서 작성한 코드를 보며 배웠다.
[프로그래머스] 문자열 압축 programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 효율성과 시간복잡도를 생각하니까 반복문을 최대한 줄이려고 하니 문제푸는 시간이 길어졌고 결국 못풀었다. 생각할 시간을 갖고 안되면 반복문으로라도 해결하고 파이써닉한 코드를 작성해주는 것을 목표로 공부해야겠다. def solution(s): #일단 내가 해결하기 힘든부분은 그냥 반복이나 노가다성 코드로 돌리자 length = len(s) answer = [length] ..
210401 Stand Firm! [https://youtu.be/1utzfa-a5AY] Don't Settle ! Keep Going ! 잡스는 하버드 연설에서 세가지 이야기를 하는데, 그 두번째 핵심은 위의 문구로 정리된다. 잡스가 애플에서 30살에 해고되고 나서의 이야기는 굉장히 유명하다. 이때 그를 일으켰던 가장 큰 마인드는 바로 일에 대한 사랑이었다. 자기가 하고 싶은 일이 분명했다는 것이... 결국 세계 최고의 애니메이션 스튜디오 픽사를 만들고 넥스트가 애플에 인수되는 아이러니한 일과, 넥스트에서 만들어낸 많은 것들이 애플의 핵심 르네상스로 자리잡게 된 것이다. 첫번째 했던 이야기. 리드칼리프에서 몰래 들었던 서체 수업이 맥킨토시의 터닝포인트가 되었다던지. 모든 나의 과거의 경험은 자산이 되었고 (그것이 당시에 좌절감과 실패를..
[프로그래머스] 스킬트리 문제 설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다. 선행 스킬 순서 skill과 유저들이 만든 스킬트리1를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return 하는 solution 함수를 작성해주세요. 제한 조건 ..
210128 여덟단어 훈련소때 이리저리 치이며 훈련을 받다가 주말이 되면 누리는 휴식은 달콤하기 그지없었다. 동기 한명과 훈련소 연대에 있는 서재에 가서 이 책을 우연히 보게 되었는데, 당시에도 표지가 낯이 익어 왜지? 했는데 교보에 가면 베스트셀러 자리에 꾸준히 있었던 책이라 그랬던 듯 싶다. 그때 시간을 내서 이 책을 처음 읽었는데, 그게 벌써 5년이 다 되어간다. 시간이 참 빠르다. 아는 분의 권유로 최근에 이 책을 도서관에서 빌려 다시 읽게 되었다. 0. 박웅현 제목에서 말해주듯이 이 책은 8가지 키워드를 가지고 저자의 생각을 펼쳐나가는 에세이이다. 전작 에서도 느꼈지만, 박웅현씨는 확실히 책을 곱씹는 능력이 뛰어나다. 많은 책을 읽어 다방면으로 지식이 풍부한 다독가도 좋지만, (이를테면 김병완씨) 한권의 책을 읽어도..
[이코테 2021] 그리디 & 구현 알고리즘 문제는 결국 문제해결능력을 물어보는 것이다. 무작정 코딩하려 하지 말고, 주어진 문제의 "상황"을 이해하고, 그 문제를 어떻게 컴퓨터 언어를 통해서 풀어낼 것인가를 곰곰히 생각해보는 것이 중요하다. 이때, 당연히 알고리즘 종류에 대해서 정확히 이해해서 어떻게 적용시킬수 있을까를 생각하는 것과, 적절한 자료구조를 이용해서 풀어내는 것이 중요할 것. 창의적인 풀이도 좋지만 어느정도 정석적인 풀이로 접근하는 것이 좋아보인다 ( 이것이 꼭 코테가 천재들만 할 수 있는 영역이 아닌 이유) [그리디 문제 풀이] 처음에는 아래와 같이 풀었다. def solution(li): key = list(Counter(li).keys()) value = list(Counter(li).values()) cnt = 0 d..
[프로그래머스] 큐/스택 - 프린터 전형적인 큐를 활용하는 문제. 콜렉션에서 deque를 굳이 활용해서 써봤다.. ㅎㅎ def solution(priorities, location): from collections import deque q = deque(priorities) name = deque([i for i in range(len(priorities))]) sheet = [] while len(q)!=0: if q[0] < max(q): q.append(q[0]) q.popleft() name.append(name[0]) name.popleft() else: q.popleft() sheet.append(name[0]) name.popleft() for num, loca in enumerate(sheet): if loca==locat..
[프로그래머스] 큐/스택 - 기능개발
[프로그래머스] 큐/스택 - 주식가격 그리 어려워보이지 않은 문제. 핵심만 파악하면 금방 풀 수 있는 문제인거 같다. 내 풀이는 아래와 같고 . . . range의 첫인자를 안주면 0부터 시작하고, 주면 준 자연수부터 시작한다. 그리고 두번째인자는 보통 포함되지 않고, (두번째인자-첫번째인자) 횟수만큼 반복문이 돈다고 보면 됨. append를 썼으니 last in을 이용했다고 생각함 ! 다른 사람은 이렇게 풀었는데, 나랑 푸는 방법은 거의 같은 풀이다. 미리 answer에 0을 채운 리스트를 만들어주고, 자리마다 카운트를 해주어서 값을 넣는 것이 조금 달랐다. def solution(prices): answer = [0] * len(prices) for i in range(len(prices)): for j in range(i+1, len(..