Programmers / 2단계 / 큰 수 만들기 / python / 탐욕법(Greedy)
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/68645 나의 풀이 def solution(number, k): stack = [] for num in number: while k>0 and stack and stack[-1] < num: stack.pop() k -= 1 stack.append(num) return "".join(stack[:len(stack)-k]) 제거하는 수를 제외한 나머지 수의 위치를 변경하지 않고 만들 수 있는 최댓값을 구하는 문제였다. Stack을 사용해 number 값들을 넣고 while문으로 Stack의 맨 위의 원소보다 number 값이 크면 Stack 원소를 pop함과 동시에 k값을 1 줄여가며 k가 0일 때까지..
분류 모델 성능 평가 지표 (Confusion Matrix)
·
데이터 분석
분류 모델에 대한 성능을 평가할 때에는 여러 방법이 있지만, 대표적으로 정확도(Accuracy), 정밀도(Precision), 재현도(Recall), F1 score가 있다. 1. Confusion Matrix (오차행렬) Confusion Matrix란 Training을 통한 Prediction 성능을 측정하기 위해 예측값과 실제값을 비교하기 위한 표이다. 여기서 ACTUAL VALUES는 실제값, PREDICTIVE VALUES는 예측값을 의미하며, T는 True, F는 False, P는 Positive, N은 Negative를 의미한다. 즉, TP, TN은 실제값과 맞게 예측한 부분이며, FP, FN은 실제값과 다르게 예측한 부분을 의미한다. 2. Accuracy (정확도) Accuracy란 전체 ..
Programmers / 2단계 / 삼각 달팽이 / python
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/68645 나의 풀이 def solution(n): triangle = [ [0] * n for _ in range(n) ] answer = [] x, y = -1, 0 num = 1 for i in range(n): for j in range(i, n): if i % 3 == 0: x += 1 elif i % 3 == 1: y += 1 elif i % 3 == 2: x -= 1 y -= 1 triangle[x][y] = num num += 1 for i in range(n): for j in range(i+1): answer.append(triangle[i][j]) return answer trian..
Programmers / 3단계 / 두 큐 합 같게 만들기 / python / 2022 KAKAO TECH INTERNSHIP
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/118667 나의 풀이 from collections import deque def solution(queue1, queue2): q1 = deque(queue1) q2 = deque(queue2) s1 = sum(q1) s2 = sum(q2) sumnum = s1 + s2 if sumnum % 2 == 1: return -1 cnt = 0 while True: if s1 > s2 and len(q1) != 0: num = q1.popleft() q2.append(num) s1 -= num s2 += num cnt += 1 elif s2 > s1 and len(q2) != 0: num = q2.popl..
Programmers / 3단계 / 단속카메라 / python / 탐욕법(Greedy)
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/42884 나의 풀이 def solution(routes): routes.sort(key = lambda x: x[1]) camera = -30001 cnt = 0 for route in routes: if route[0] > camera: cnt += 1 camera = route[1] return cnt 1. 최소한의 카메라를 설치하기 위해 진출 지점을 기준으로 정렬한다.2. 제한사항을 고려해 camera를 -30001으로 놓는다.3. routes를 돌며 차량의 진입 지점이 카메라의 위치보다 크면 카메라의 수(cnt)를 증가시킨다.4. camera를 차량의 진출 지점으로 놓고 반복한다
Best-First Search 8-puzzle 실습
·
카테고리 없음
코드 import queue class State: def __init__(self, board, goal, moves=0): self.board = board self.goal = goal self.moves = moves def get_new_board(self, i1, i2, moves): new_board = self.board[:] new_board[i1], new_board[i2] = new_board[i2], new_board[i1] return State(new_board, self.goal, moves) def expand(self, moves): result = [] i = self.board.index(0) if not i in [0, 1, 2]: result.append(self.g..
Programmers / 3단계 / 등굣길 / python / 동적계획법(Dynamic Programming)
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/42898 모범 답안 def solution(m, n, puddles): puddles = [[q,p] for [p,q] in puddles] dp = [[0] * (m+1) for _ in range(n+1)] dp[1][1] = 1 for i in range(1, n+1): for j in range(1, m+1): if i == 1 and j == 1: continue if [i, j] in puddles: dp[i][j] = 0 else: dp[i][j] = (dp[i - 1][j] + dp[i][j - 1]) % 1000000007 return dp[n][m] 웅덩이의 위치 puddles의 좌..
Programmers / 2단계 / 소수 찾기 / python / 완전 탐색
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/42839 모범 답안 from itertools import permutations def solution(n): a = set() for i in range(len(n)): a |= set(map(int, map("".join, permutations(n, i + 1)))) a -= set(range(0, 2)) for i in range(2, int(max(a) ** 0.5) + 1): a -= set(range(i * 2, max(a) + 1, i)) print(set(range(i * 2, max(a) + 1, i))) return len(a) 알게된 것 itertools의 permutation..