[Python] 30462: MEXchange
·
Problem Solving
# KUPC2023 - 파이썬30462번: MEXchange 풀이정답까지 1시간 30분 정도 걸린 것 같다. 수열 형식의 로직의 Output을 주고, 거기서 거꾸로 로직의 Input을 찾는 문제이다.거꾸로 찾는 것이 어렵지 해당 로직 구현이 어려운 것은 아니기 때문에, 문제에서 제시하는 MEX 로직을 만들고 N자리 순열의 모든 경우의 수를 넣어서 규칙을 찾아보려고 했다.from itertools import permutationsn = 6for a in permutations(range(1, n + 1), n): a = list(a) b = [] for i in range(n): new_a = a[:i + 1] for i in range(1, n + 2): ..
[Python] 30463: K-문자열
·
Problem Solving
30463번: K-문자열 풀이`N  '서로 다른 문자'를 가지느냐가 중요하니까, 0 ~ 9의 각 숫자를 가지고 있는지로 압축할 수 있겠다.10가지의 숫자를 갖고 있냐 없냐니까 `2^10`개로 압축할 수 있고, 압축한 것에 대해서는 `O(N^2)`을 하더라도 풀리겠다. 1. 각 문자열을 set으로 바꿔 중복된 숫자를 없앤 후, 리스트로 바꿔 정렬한다.`'1111111111'` -> `'1'``'9876543210'` -> `'0123456789'`  2. 1번 과정으로 일반화된 문자열의 개수를 dict으로 센다. 3-1. dict를 순회하며, 2개의 key를 연결했을 때 서로 다른 숫자가 k개라면, 각 value를 곱해 result에 더한다. 3-2. 문자열이 동일하면서, 가진 서로 다른 숫자가 k개일 경..