본문 바로가기
반응형

프로그래머스234

(Python/🥈2)백준 알고리즘 1780번: 종이의 개수 문제 바로가기 문제: N*M크기의 행렬 A와 M*K크기의 행렬 B가 주어졌을 때, 두 행렬을 곱하는 프로그램을 작성하시오. 입력: 첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개가 차례대로 주어진다. N과 M, 그리고 K는 100보다 작거나 같고, 행렬의 원소는 절댓값이 100보다 작거나 같은 정수이다. 출력: 첫째 줄부터 N개의 줄에 행렬 A와 B를 곱한 행렬을 출력한다. 행렬의 각 원소는 공백으로 구분한다. import sys sys.stdin = open('/Users/song/Desktop/Python/Python/h.txt', 'r'.. 2023. 6. 16.
Union-Find (Disjoint Sets) 알고리즘 Union - Find랑 크루스칼 알고리즘을 사용하려면 필수적으로 알아야하는 알고리즘이다. 여러개의 노드가 존재할때 두 개의 노드를 선택하여 같은 트리에 포함되어있는지 확인하는 것이다. Union - Find 를 구현할 때는 트리 자료구조를 이용하여 집합을 표현한다. 트리로 부분집합을 표현하고 find를 통해 루트 노드를 찾고 union으로 트리를 합친다. 처음 시작할때 숫자들은 자기 자신이 부모이며, 노드가 연결되어있어 합치게 되면 더 작은값이 부모가 된다. 만약 1,2 가 연결되어있으면 부모는 1,1 이다. def find(parent, x): if parent[x] != x: # 자기 자신이 아닌경우 다른 노드에 연결된 경우 parent[x] = find(parent, parent[x]) retur.. 2023. 6. 13.
(Python/🥈2)백준 알고리즘 1021번: 회전하는 큐 문제: 지민이는 N개의 원소를 포함하고 있는 양방향 순환 큐를 가지고 있다. 지민이는 이 큐에서 몇 개의 원소를 뽑아내려고 한다. 지민이는 이 큐에서 다음과 같은 3가지 연산을 수행할 수 있다. 1.첫 번째 원소를 뽑아낸다. 이 연산을 수행하면, 원래 큐의 원소가 a1, ..., ak이었던 것이 a2, ..., ak와 같이 된다. 2.왼쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ..., ak가 a2, ..., ak, a1이 된다. 3.오른쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ..., ak가 ak, a1, ..., ak-1이 된다. 큐에 처음에 포함되어 있던 수 N이 주어진다. 그리고 지민이가 뽑아내려고 하는 원소의 위치가 주어진다. (이 위치는 가장 처음 큐에서의 위치이다... 2023. 6. 6.
(Python/PCCP1회 모의고사 1번) 외톨이 알파벳 문제 설명 알파벳 소문자로만 이루어진 어떤 문자열에서, 2회 이상 나타난 알파벳이 2개 이상의 부분으로 나뉘어 있으면 외톨이 알파벳이라고 정의합니다. 문자열 "edeaaabbccd"를 예시로 들어보면, a는 2회 이상 나타나지만, 하나의 덩어리로 뭉쳐있으므로 외톨이 알파벳이 아닙니다. "ede(aaa)bbccd" b, c도 a와 같은 이유로 외톨이 알파벳이 아닙니다. d는 2회 나타나면서, 2개의 부분으로 나뉘어 있으므로 외톨이 알파벳입니다. "e(d)eaaabbcc(d)" e도 d와 같은 이유로 외톨이 알파벳입니다. 문자열 "eeddee"를 예시로 들어보면, e는 4회 나타나면서, 2개의 부분으로 나뉘어 있으므로 외톨이 알파벳입니다. "(ee)dd(ee)" d는 2회 나타나지만, 하나의 덩어리로 뭉쳐있.. 2023. 5. 26.
(Python/LV3) 섬 연결하기 문제 출처: 프로그래머스 LV3 탐욕범 섬 연결하기 풀이: 문제설명 n개의 섬 사이에 다리를 건설하는 비용(costs)이 주어질 때, 최소의 비용으로 모든 섬이 서로 통행 가능하도록 만들 때 필요한 최소 비용을 return 하도록 solution을 완성하세요. 다리를 여러 번 건너더라도, 도달할 수만 있으면 통행 가능하다고 봅니다. 예를 들어 A 섬과 B 섬 사이에 다리가 있고, B 섬과 C 섬 사이에 다리가 있으면 A 섬과 C 섬은 서로 통행 가능합니다. 제한사항 섬의 개수 n은 1 이상 100 이하입니다. costs의 길이는 ((n-1) * n) / 2이하입니다. 임의의 i에 대해, costs[i][0] 와 costs[i] [1]에는 다리가 연결되는 두 섬의 번호가 들어있고, costs[i] [2]에.. 2023. 5. 23.
(Python/LV3) 불량 사용자 문제출처:https://school.programmers.co.kr/learn/courses/30/lessons/64064 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: from itertools import permutations import re def solution(user_id, banned_id): n = len(banned_id) answer = [] banned_id = [i.replace("*", ".") for i in banned_id] # 정규식에서의 '.'은 어떠한것들과 대응 와일드카드 for i in permutations.. 2023. 5. 20.
반응형