전체보기
-
지형 편집코딩 테스트/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회 정도에서..
-
[파이썬] 매 시간 주가 음성 안내 프로그램 만들기Python/파이썬과 주식 2022. 12. 9. 10:16
매 시간 특정 종목의 주가를 읽어주는 프로그램. 이 프로그램에는 3가지 기능이 필요하다. 1. 매 시간 반복. 2. 특정 종목 주가를 받아온다. 3. 이것을 읽어준다. 매 시간 반복되는 작업을 처리할 때 1. 윈도우(OS)에는 스케줄러 기능이 있어 이를 이용해도 되지만, 파이썬 코드 하나로 관리하는 게 일반적으로 더 선호된다. 2. 루프와 조건문을 이용해서 직접 코딩해도 되겠지만 3. 스케줄러를 사용하면 다양한 조건을 설정할 수도 있고, 어렵지 않으니 스케줄러를 이용하는 것이 좋을 것이다.... 구글에서 '파이썬 스케줄러'로 검색하면 schedule, apscheduler 두 가지가 많이 나오는 데 이 번에는 apscheduler를 이용한다. 공식 문서: https://apscheduler.readthe..
-
디펜스 게임코딩 테스트/Level 2 2022. 12. 8. 19:51
https://school.programmers.co.kr/learn/courses/30/lessons/142085 힙큐를 쓰면 쉽게 풀 수 있다. push와 pop을 같이 해야할 경우 pushpop을 쓰는 것이 더 빠르다. 파이썬 내장 함수에 round가 있기 때문에 변수명으로 round는 사용하지 않는 것이 좋다. 파이썬의 힙큐는 최소힙이라 최대힙을 사용하기 위해 '-'를 붙여주었다. def solution(n, k, enemy): from heapq import heappushpop, heappush heap = [] total = round_ = 0 for each in enemy: total += each if total 0: k -= 1 total += heappushpop(heap, -eac..
-
프로그래머스 / 가장 가까운 같은 글자코딩 테스트/Level 1 2022. 12. 8. 19:49
https://school.programmers.co.kr/learn/courses/30/lessons/142086 파이썬 def solution(s): marked = {} answer = [] for index, letter in enumerate(s): answer.append(index - marked[letter] if letter in marked else -1) marked[letter] = index return answer 코틀린 class Solution { fun solution(s: String): IntArray { val answer = mutableListOf() val counter = mutableMapOf() for ((index, each) in s.withIndex()..