728x90 반응형 Python169 (Python 파이썬) itertools를 이용한 원소의 경우의 수(순열, 조합) 추출하기 순열 순열은 서로 다른 n개 중에 r개를 뽑는 경우의 수로 순서를 고려한다. permutations 함수를 이용해 구현할 수 있다. 중복 순열 중복순열은 중복 가능한 n개 중에 r개를 나열하는 경우의 수로 순서를 고려한다. 파이썬에서 product 함수를 이용해 구현할 수 있다. 조합 조합은 서로 다른 n개 중에 r개를 선택하는 경우의 수로 순서를 고려하지 않는다. combinations 함수를 통해 구현할 수 있다. 중복 조합 중복조합은 중복 가능한 n개 중에 r개를 선택하는 경우의 수로 순서를 고려하지 않는다. combinations_with_replacement 함수를 이용해 구현할 수 있다. 2022. 2. 28. 2022.02.28 [백준] (python 파이썬) 다리 놓기 https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 풀이 이 문제는 M개의 사이트에서 N개를 뽑아 N의 사이트와 연결시키는 문제이다. 하나의 사이트에 하나의 사이트만 연결할 수 있고 서로 겹치면 안되므로 조합을 이용하여 쉽게 해결할 수 있다. 참고로 조합은 M!/(N!*(M-N)!)이다. 아래의 코드에서 N,M의 범위가 30이하이므로 30까지의 팩토리얼 값을 factorial배열에 담았다. 그리고 주어진 조건에 맞게 조합을 이용하여 연결할 수 있는.. 2022. 2. 28. 2022.02.28 [백준] (python 파이썬) 안정적인 문자열 https://www.acmicpc.net/problem/4889 4889번: 안정적인 문자열 입력은 여러 개의 데이터 세트로 이루어져 있다. 각 데이터 세트는 한 줄로 이루어져 있다. 줄에는 여는 괄호와 닫는 괄호만으로 이루어진 문자열이 주어진다. 문자열의 길이가 2000을 넘는 경우 www.acmicpc.net 풀이 이 문제는 스택을 이용해서 해결했다. 만약 여는 괄호가 나오면 stack에 저장하고, 닫는 괄호가 나오면 두가지 경우로 생각할 수 있다. 만약 stack이 비어 있을 경우 괄호의 짝이 맞지 않기 때문에 여는 괄호로 바꾼 뒤 stack에 저장. 괄호를 바꿨기 때문에 cnt를 증가시킴. 만약 stack의 마지막 인덱스 값이 여는 괄호이면 서로 짝이 맞기 때문에 이 괄호 쌍은 더 이상 비교할 .. 2022. 2. 28. 2022.02.28 [프로그래머스] (python 파이썬) 프린터 https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 풀이 해당 문제는 문서를 모두 입력받고 왼쪽 끝의 문서보다 중요도가 높은 문서가 뒤에 존재하면 왼쪽 끝의 문서를 오른쪽 끝으로 보내야한다. 그래서 양방향 데이터 입출력이 가능한 deque를 이용했다. 우선 order_prior배열에 (문서의 순서, 문서의 중요도)로 저장했다. 이후 while문에서 배열의 제일 앞의 중요도보다 높은 문서가 있으면 제일 앞의 문서를 뒤.. 2022. 2. 28. 이전 1 ··· 15 16 17 18 19 20 21 ··· 43 다음 728x90 반응형