본문 바로가기
728x90
반응형

Python3173

2022.02.28 [백준] (python 파이썬) 다음 순열 https://www.acmicpc.net/problem/10972 10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 풀이 이 문제는 다음 수열을 출력하는 문제이다. 1 4 3 2의 경우 뒤에서부터 순열을 비교, 뒷 값이 앞 값보다 큰 경우까지 반복한다. (1, 4 가 해당) 이때 1의 인덱스를 x라고 하고 4의 인덱스를 y라고 한다. 다시 두 번째 for 문으로부터 탐색하여 인덱스 x값 즉 1 보다 큰 값이 있으면 그 값과 1을 바꿔준다. -> 여기서는 1과 2이 바뀜 y에 해당하는 인덱스부터 정렬해준 뒤 이어 붙여준다. -> 여기서는 4 3 1을 정렬해준 1 3 4가 .. 2022. 2. 28.
2022.02.28 [백준] (python 파이썬) 암호 만들기 https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 풀이 우선 조건을 생각해보자. 암호에서 모음이 최소 1개이상, 자음이 2개이상 있어야한다. 암호는 알파벳의 증가순으로 배열된다. 위의 두 조건을 보면 우선 입력받은 알파벳을 오름차순으로 정렬해야 한다. 그래서 입력받은 alpha배열을 정렬하고 모음 정렬을 만들어준다. 이후, combinations함수를 이용해 alpha배열에서 L개를 뽑아준다. 이 때, 순서는 고려하지 않으므로 뽑히는 모든 배열은 알파.. 2022. 2. 28.
2022.02.28 [백준] (python 파이썬) 이항 계수 2 https://www.acmicpc.net/problem/11051 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 풀이 중복을 이용하여 간단히 해결함. 1 2 3 4 5 import math n,k=map(int, input().split()) print((math.factorial(n)//(math.factorial(k)*math.factorial(n-k)))%10007) cs 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.
728x90
반응형