728x90

Total

728x90

    양궁대회 (조합, 완전 탐색)

    순열조합 이터레이터 인자 결과 product() p, q, … [repeat=1] 데카르트 곱(cartesian product), 중첩된 for 루프와 동등합니다 permutations() p[, r] r-길이 튜플들, 모든 가능한 순서, 반복되는 요소 없음 combinations() p, r r-길이 튜플들, 정렬된 순서, 반복되는 요소 없음 combinations_with_replacement() p, r r-길이 튜플들, 정렬된 순서, 반복되는 요소 있음 예 결과 product('ABCD', repeat=2) AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD permutations('ABCD', 2) AB AC AD BA BC BD CA CB CD DA DB DC..

    양과 늑대 (DFS)

    https://school.programmers.co.kr/learn/courses/30/lessons/92343 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 2 ≤ info의 길이 ≤ 17 당신이 모은 양의 수보다 늑대의 수가 같거나 더 많아지면 바로 모든 양을 잡아먹어 버립니다. 당신은 중간에 양이 늑대에게 잡아먹히지 않도록 하면서 최대한 많은 수의 양을 모아서 다시 루트 노드로 돌아오려 합니다. """ def solution(info, edges): answer = [] n = len(info) # 노드수 def dfs(scnt, wcnt)..

    신고 결과 받기 (구현)

    array [] tuple () dictionary {} def solution(id_list, report, k): answer = [0] * len(id_list) r = {x: 0 for x in id_list} for x in set(report): r[x.split()[1]] += 1 for x in set(report): s, e = x.split() if r[e] >= k: answer[id_list.index(s)] += 1 return answer

    K진수에서 소수의 개수 구하기

    def solution(n, k): import math # k진수 변환 word = '' while n: word = str(n % k) + word n = n // k arr = word.split("0") answer = 0 for i in arr: if len(i) == 0: continue if int(i) < 2: continue flag = True for j in range(2, int(math.sqrt(int(i)) + 1)): if int(i) % j == 0: flag = False break if flag: answer += 1 return answer print(solution(437674,3))

    표병합 (구현, 유니온파인드)

    """ UPDATE r c value : (r,c) value 저장 UPDATE value1 value2 : value1값 value2로 변경 MERGE r1 c1 r2 c2 : (r1, c1) 위치의 셀과 (r2, c2) 위치의 셀을 선택하여 병합 UNMERGE r c: 병합을 해제 PRINT r c : (r, c) 위치의 셀 출력 """ def solution(commands): n=50 board=[[(i,j) for j in range(n)] for i in range(n)] # 좌표 넣고 병합셀이면 좌측좌표 저장 str_board=[['EMPTY']*n for _ in range(n)] # 값 저장 answer = [] for c in commands: arr=c.split() if arr[0]..

    개인정보 수집 유효기간 (문자열, 구현)

    """ 오늘 날짜를 의미하는 문자열 today, 약관의 유효기간을 담은 1차원 문자열 배열 terms 1 ≤ terms의 길이 ≤ 20 수집된 개인정보의 정보를 담은 1차원 문자열 배열 privacies 1 ≤ privacies의 길이 ≤ 100 파기해야 할 개인정보의 번호를 오름차순으로 1차원 정수 배열에 담아 return """ def solution(today, terms, privacies): answer = [] #오늘 날짜 nyear = int(today[:4]) nmonth = int(today[5:7]) nday = int(today[8:]) for i in range(len(terms)): for j in range(len(privacies)): if terms[i][0] == priva..

    [14891] 톱니바퀴 (deque, rotate)

    14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 풀이 """" 톱니바퀴 A를 회전할 때, 그 옆에 있는 톱니바퀴 B와 서로 맞닿은 톱니의 극이 다르다면, B는 A가 회전한 방향과 반대방향으로 회전하게 된다 1~4 톱니바퀴 상태 12시방향부터 시계방향 순서(N극 0, S극 1) 회전 횟수 K(1 ≤ K ≤ 100) 톱니바퀴의 번호, 방향(1 시계, -1 반시계) 1번 톱니바퀴의 12시방향이 N극이면 0점, S극이면 1점 2번 톱니바퀴의 12시방향이 N극이면 0점, S극이면 2점 3번 톱니바퀴의 12시방향이 N..

    [11559] Puyo Puyo

    11559번: Puyo Puyo 총 12개의 줄에 필드의 정보가 주어지며, 각 줄에는 6개의 문자가 있다. 이때 .은 빈공간이고 .이 아닌것은 각각의 색깔의 뿌요를 나타낸다. R은 빨강, G는 초록, B는 파랑, P는 보라, Y는 노랑이다. www.acmicpc.net 풀이 """ 같은 색 뿌요가 4개 이상 상하좌우로 연결되어 있으면 연결된 같은 색 뿌요들이 한꺼번에 없어진다. 이때 1연쇄가 시작된다. 상대방의 필드가 주어졌을 때, 연쇄가 몇 번 연속으로 일어날지 계산 이때 .은 빈공간이고 .이 아닌것은 각각의 색깔의 뿌요를 나타낸다. R은 빨강, G는 초록, B는 파랑, P는 보라, Y는 노랑이다. 입력으로 주어지는 필드는 뿌요들이 전부 아래로 떨어진 뒤의 상태이다. 몇연쇄가 되는지 출력 '""" im..

    Java sort() Arrays와 Collections

    Java의 정렬 내장 함수 Arrays.sort() 와 Collections.sort()는 서로 다른 정렬 알고리즘으로 구현 int[] array = new int[]{1, 3 , 5, 4, 2}; Arrays.sort(array); List collection = new ArrayList(List.of(1, 3, 5, 4, 2)); Collections.sort(collection); Arrays.sort() Arrays.sort() 확인했을 때, 듀얼피봇 퀵정렬(Dual-Pivot QuickSort) 확인 듀얼피봇 퀵정렬(Dual-Pivot QuickSort) 피봇을 2개를 두고 3개의 구건을 만들어 퀵 정렬 진행하는 알고리즘 퀵소트보다 좋은 성능 Collections.sort() nlg(n) 비교보..

    Stable Sort, Inplace algorithm

    Stable Sort (안정 정렬) 중복된 키를 순서대로 정렬하는 정렬 알고리즘 같은 값이 2개 이상 리스트에 등장할 때 기존 리스트에 있던 순서대로 중복된 키들이 정렬된 다는 것을 의미 list = [2, 8, 9, 4(1), 1, 4(2), 6, 7]는 4라는 값이 중복됨 Stable sort 알고리즘으로 정렬 시 [1, 2, 4(1), 4(2), 6, 7, 8, 9] Unstable sort 알고리즘으로 정렬 시 [1, 2, 4(2), 4(1), 6, 7, 8, 9] stable sort로 정렬하는 알고리즘들의 순서는 항상 똑같기에 항상 결과가 같음을 보장할 수 있음 첫 문자를 기준으로 문자열을 정렬하는 경우 정렬할 때마다 순서가 다르면 혼란스러울 수 있기 때문에, 항상 안정적으로 같은 리스트가 리..