99클럽 4

99클럽 코테 스터디 15일차 TIL | 백준 미로만들기 풀이, 최소비용과 BFS

아래와 같은 정사각형방이 있을 때, 좌측상단 모서리에서 우측하단 모서리까지 가야한다.이때 까맣게 색칠된 방은 0으로 표시되며, 이 방을 지나갈때는 1만큼의 비용이 발생한다.좌측상단에서 우측하단에 도착할 수 있는 최소비용을 구하는 문제이다. 한 변의 길이 N은 1 이상 50이하이고, 실행 제한시간은 1초이다.  처음에는 모든 경우의 수를 모두 돌아보되, 가능성이 없는 경로는 빠르게 쳐내기 위해 DFS로 빠르게 최소비용을 구하고자했었다.쓸데없이 경로를 꼭 알아야한다고 생각을 했던것...그렇지만 우리 문제는 어떤 경로를 사용했는지가 중요한 문제가 아니라서 황급히 우선순위큐를 사용한 다익스트라로 구현을 바꾸었다. 전체 구현 코드는 아래와 같다.더보기 import heapqdirs = [(1,0),(0,1),(-..

99클럽 코테 스터디 11일차 TIL | Python 고차함수는 iterator를 반환한다

함수형 프로그래밍을 공부하다보면 map, filter, reduce, foreach 등을 사용하여 의도가 명확하게 드러나도록 코드를 작성하는 시도를 하게된다. 파이썬에도 이러한 접근을 돕기위한 빌트인 라이브러리가 존재한다. 그런데 반환값이 특이하다.map(변환람다, 원본리스트) # 람다를 적용한 변환 결과를 map 형태로 반환filter(변환람다, 원본리스트) # 람다 결과가 True인 것만 뽑아서 filter 형태로 반환zip(키배열, 밸류배열) # 튜플 iterator 반환 map, filter를 반환한다는 부분이 이해가 안될 수 있는데, 정말 반환 결과의 타입을 출력해보면 각각 map과 filter로 나온다.  그리고 아래처럼 map은 두번 사용할 수가 없다.def divide_arr(): i..

99클럽 코테 스터디 10일차 TIL | 백준 1253. 좋다 반례 (Python)

문제 링크 : 백준 1253. 좋다  /  정답 코드 바로가기  주어진 N개의 수 중에서 '좋은수'를 찾아야한다.좋은수란 다른 두 수의 합으로 나타낼 수 있는 수를 의미한다.값이 같아도 숫자의 위치가 다르면 다른 수로 취급한다. [1, 1, 2, 2, 2]예를 들어 위 케이스에서, 각 2는 모두 다른 수이므로 결과는 3이 되어야한다. 숫자 배열의 길이는 1 ~ 2,000 이며, 각 수의 범위는 -1,000,000,000 ~ 1,000,000,000 이다. 예시 케이스Case 1 ) input : [-1, 0, 1] / output : 1 -1 은 좋은 수가 아니다. -1을 제외한 [0, 1] 로는 -1을 만들 수 없다.0 은 좋은수이다. (-1) + (1) 을 더해서 만들 수 있다.1 은 좋은 수가 아니..

99클럽 코테 스터디 9일차 TIL | 다단계 칫솔 판매 반례 (Python)

문제 링크 : 프로그래머스 다단계 칫솔 판매 항상 자신의 추천인에게 판매 대금의 10%를 떼줘야하는 다단계 기업이 있다.10% 수수료 계산시 소수점을 버림하는 규칙이 있다.아래와 같은 4개의 배열이 주어질 때, 주어진 각 멤버의 수익을 계산해서 배열로 반환해야한다.빠르게 부모 노드를 찾을 수 있는 자료구조를 고안하는것과, 반례를 찾는것이 중요한 문제였다. 예시 케이스조직도가 [ 사장 - A - B - C ] 형태일 때, 인풋은 아래와 같이 주어진다. 조직도는 아래 형태로 주어지고 [0][1][2]enroll (멤버이름)ABCreferral (추천인)- (사장은 "-" 로 표시한다.)AB 칫솔 판매 실적은 아래처럼 주어진다. 칫솔은 하나에 100원으로 고정이다. [0][1][2]seller (판매 담당자)..