본문 바로가기

반응형

알고리즘

(37)
[정렬] Bubble, Selection, Quick Sort 정리 1. Bubble sort 인접한 두 원소를 비교하여, 교환 및 정렬하는 알고리즘 Selection Sort와 유사한 알고리즘 이름이 Bubble Sort인 이유: 거품처럼 수면으로 올라오는 듯한 모습 1. 1 Bubble Sort 과정 배열을 순회하며, [첫 번째 원소 ↔️ 두 번째 원소], [두 번째 원소 ↔️ 세 번째 원소] ... [마지막 - 1 원소 ↔️ 마지막 원소] 를 비교하며 교환 순회를 1회 반복하면, 배열의 1개의 원소가 정렬된다. 따라서 1번 과정을 N-1번 반복. 1. 2 코드 import java.util.Arrays; import java.util.Random; public class 자바연습장{ public static void main(String[] args) { Syste..
CCW(Counter Clock Wise) 알고리즘 CCW(Counter-Clockwise) 알고리즘 은 2차원 평면상에서 세 점의 방향을 판별하는 알고리즘 주 사용 분야 이컴퓨터 그래픽스, 기하학적 문제, (혹은 알고리즘 풀 때...) https://www.acmicpc.net/problem/2162 2162번: 선분 그룹 첫째 줄에 N(1 ≤ N ≤ 3,000)이 주어진다. 둘째 줄부터 N+1번째 줄에는 양 끝점의 좌표가 x1, y1, x2, y2의 순서로 주어진다. 각 좌표의 절댓값은 5,000을 넘지 않으며, 입력되는 좌표 사이에는 빈칸이 하 www.acmicpc.net 기본 개념 알고리즘의 기본 아이디어는 벡터의 외적(크로스 프로덕트)을 이용. - 벡터의 외적은 두 벡터가 이루는 평행사변형의 넓이를 계산. CCW의 과정 입력으로 주어진 세 점을 ..
카카오 2022 양과 늑대 파이썬 # 참고 : https://blog.encrypted.gg/1029 ans = 1 l = [-1] * 20 r = [-1] * 20 val = [] n = 0 vis = [0] * (1 종료 if vis[state] == 1: return #방문 처리 vis[state] = 1 #실행 sheep, wolf = 0, 0 for i in range(n): if state & (1
카카오 2022 파괴 되지 않는 건물 파이썬 (정확도만 통과) #skill = [type, r1, c1, r2, c2, degree] from multiprocessing.connection import answer_challenge def solution(board, skill): answer = 0 for arr in skill: if arr[0] == 1 : #공격 attack(board, arr) elif arr[0] == 2: #회복 heal(board, arr) for arr in board: for i in arr: if i > 0 : answer += 1 return answer def attack(board, arr): x1, y1, x2, y2 , degree = arr[1:6] for i in range(x1, x2+1)..
카카오 2022 양궁대회 (DFS) 파이썬 lionPoint = 0 apeachPoint = 0 maxGap = 0 Arr = [] lionArr = [0 for i in range(11)] def dfs(n, depth, info, start): global lionPoint, apeachPoint, maxGap if depth == n: for i in range(11): if not(lionArr[i] == 0 and info[i] == 0) : if lionArr[i] > info[i]: lionPoint += 10-i else : apeachPoint += 10-i if lionPoint > apeachPoint : gap = lionPoint - apeachPoint if gap > maxGap : Arr.clear() Arr...
카카오 2022 주차요금계산 파이썬 from math import ceil def solution(fees, records): answer = [] record_map = records_split(records=records) cars_nums = list(record_map.keys()) cars_nums.sort() for car in cars_nums: times = list(record_map.get(car)) sumTime = 0 for i in range(0, len(times), 2): if len(times) % 2 == 1 and i == len(times)-1: sumTime += (1439 - times[i]) else : sumTime += (times[i+1] - times[i]) answer.append(c..
카카오 2022 k진수에서 소수 개수 구하기 파이썬 def solution(n, k): answer = 0 numbers = convert(n, k) primeNumbers = numbers.split("0") primeNumbers = list(filter(None, primeNumbers)) primeNumbers = list(map(int, primeNumbers)) for num in primeNumbers: if num 0: converted_num.append((str)(n%k)) n //= k converted_num.reverse() return "".join(converted_num) print(solution(110011, 10))
카카오 2022 신고결과 받기 파이썬 def solution(id_list, report, k): report = set(report) report = list(report) reportList = list() #[[a, b] [c, d] [e, f] [g, h] ...] for i in report: reportList.appned(i.split()) users = [] users_cnt = [0 for _ in range(len(id_list))] for i in reportList : users.append(i[1]) temp = [] for i in range(len(id_list)): if users.count(id_list[i]) >= k : temp.append(id_list[i]) for i in reportList: ..