전체보기
-
10. 가설 검정초간단 통계 2022. 12. 12. 11:25
모모 전자회사는 스마트폰 배터리의 만충시 최대 사용 가능 시간(이후 사용 시간이라 한다)을 평균 24시간, 표준 편차는 4시간이 되도록 생산관리중이다. 새로운 공법이 개발되었고, 새로운 공법에 의해 생산한 배터리는 기존의 배터리에 비해 사용 시간이 길어졌다고 주장한다. 이 주장을 확인하기 위하여 36개의 표본을 임의로 추출하여 사용 시간을 측정한 결과 평균이 26시간이었다. 이 자료들로 새로운 공법에 의한 배터리의 사용 시간이 기존 배터리의 사용 시간보다 달라졌다고 확신할 수 있는가? 양측검정에 유의수준은 0.046 (= +-2σ = 신뢰수준 95.4%) 정규 분포, 중심극한정리, 귀무가설과 대립가설 모두를 설명했으니 이를 합쳐서 어떻게 활용할 수 있는 지 알아보자. 귀무가설과 대립가설 귀무가설과 대립가..
-
고고학 최고의 발견코딩 테스트/Level 3 2022. 12. 11. 22:03
https://school.programmers.co.kr/learn/courses/30/lessons/131702 고고학 최고의 발견 연습문제 Lv. 3 62명 4% 요약 첫 번째 줄이 결정되면, 두 번째 줄도 1가지 케이스로 결정된다. 첫 번째 줄의 모든 케이스를 전수조사(BF)한다. 꽤 힘들게 풀었다 ㅠ,.ㅠ 레벨 3 맞음? 첫 줄이 결정되면 다음 줄의 답도 결정된다. (상하좌우 방향은 관계 없다.) 첫 줄이 3, 0, 3, 0 으로 결정되어 있다면 다음 줄은 1, 0, 1, 0 회전하는 케이스만 존재한다. 그럼 첫 줄은 어떻게 결정할까? 첫 줄과 두 번째 줄은 서로 영향을 주기 때문에.. 복잡한 문제다. 첫 줄을 3, 3, 3, 0 에서 1번 턴을 해서 0, 0, 0, 0 으로 만들었더라도 두 번..
-
트리 트리오 중간값코딩 테스트/Level 4 2022. 12. 11. 18:42
https://school.programmers.co.kr/learn/courses/30/lessons/68937 def solution(n, edges): def bfs(first_node): queue = deque([(first_node, 0)]) visited = {first_node: 0} max_dist = 0 while queue: node, distance = queue.popleft() for next_node in tree[node]: if next_node not in visited: visited[next_node] = distance + 1 queue.append((next_node, distance + 1)) max_dist = max(max_dist, distance + 1) ..
-
지형 편집코딩 테스트/Level 4 2022. 12. 10. 22:19
https://school.programmers.co.kr/learn/courses/30/lessons/12984 def solution(land, p, q): # p 추가 비용, q 제거 비용 land = sorted(each for row in land for each in row) cost = (sum(land) - land[0] * len(land)) * q answer = cost for i in range(1, len(land)): if land[i] != land[i - 1]: cost += (p * i * (land[i] - land[i - 1]) - q * (len(land) - i) * (land[i] - land[i - 1])) answer = min(answer, cost) if a..
-
백준 2805 / 나무 자르기코딩 테스트 2022. 12. 10. 21:28
https://www.acmicpc.net/problem/2805 이 설명을 보고 푸는 것이 도움이 될 것 같다. https://sarah950716.tistory.com/16 def solution(n, m, trees): def cut(mid): cut_trees = 0 for tree in trees: if (temp := tree - mid) > 0: cut_trees += temp return cut_trees def solve(): answer, left, right = 0, 0, max(trees) while left
-
동굴 탐험코딩 테스트/Level 4 2022. 12. 10. 13:53
https://school.programmers.co.kr/learn/courses/30/lessons/67260 def solution(n, path, order): from collections import deque tree = {} for a, b in path: tree.setdefault(a, set()) tree.setdefault(b, set()) tree[a].add(b) tree[b].add(a) orders = {b: a for a, b in order} # '도착: 출발' 로 순서 바꿈 queue = deque([0]) visited = set() yet = {} while queue: node = queue.popleft() if node in orders and orders[no..
-
블록 게임코딩 테스트/Level 4 2022. 12. 10. 01:08
https://school.programmers.co.kr/learn/courses/30/lessons/42894 처음에는 한 줄 한 줄 0과 블록과 빈칸을 따져가면서 코딩했는데. 생각지 못한 케이스가 많아서, 하나를 해결하면 다른 케이스가 문제가 되는 상황. 방향을 바꿔 문제에서 주어진 데로 코딩해 보았다. 단, 검은 블록(-1)은 두 개씩 떨어트렸다. 세로로 된 L자형 블록은 지울 때 검은 블록 2개가 필요하니까.. 처음 시도했던 것 보다 구현도 간단하고 깔끔하다. 보드의 모든 좌표에서 2*3, 3*2 탐색을 하면서 블록을 체크한다. 6칸의 보드가 기본 블록 4개와 검은 블록 2개로 가득 차 있으면 지울 수 있다. Counter와 most_common을 이용해서 이를 확인했다. 이때 구성 블록의 종류..
-
9. 통계적 유의성, 귀무가설, 대립가설초간단 통계 2022. 12. 9. 14:46
동전 던지기와 확률 조작된 동전인지 아닌지 알 수 없는 상태에서 동전 던지기를 한다. 동전을 던졌다. 그런데 앞면이 나왔다. 앞면이 나올 확률 1/2 또 던졌다. 그런데 앞면이 나왔다. 앞면이 나올 확률 1/4 또 던졌다. 그런데 앞면이 나왔다. 앞면이 나올 확률 1/8 n번 던졌을 때 모두 앞면이 나올 확률: 1/(2**n) for n in range(1, 10): print(f'{n}회: {1 / 2 ** n * 100}%') 1회: 50.0% 2회: 25.0% 3회: 12.5% 4회: 6.25% 5회: 3.125% 6회: 1.5625% 7회: 0.78125% 8회: 0.390625% 9회: 0.1953125% 몇 회부터 조작된 동전이라고 의심하게 될까? 느낌적으로~! 예민한 사람은 3~4회 정도에서..