일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 자료구조
- 플로이드-워셜
- 에라토스테네스의 체
- 다익스트라
- 백트래킹
- 다시
- MST
- 그래프 이론
- 다이나믹프로그래밍
- DP
- 서브쿼리
- 수학
- GROUP BY
- 다이나믹 프로그래밍
- DFS
- 구현
- 재귀
- 분할정복
- join
- 트리
- 누적합
- 브루트포스
- 해시
- 그리디
- 우선순위큐
- BFS
- 크루스칼
- 시뮬레이션
- 투포인터
- 그래프 탐색
- Today
- Total
기록하고 까먹지 말기
16943 본문
날짜 : 2023. 04. 13
사용 언어 : python
문제
코드
import sys
from itertools import permutations
a, b = map(str, sys.stdin.readline().rstrip().split()) # 문자열로 입력
c = -1
num = list()
for i in permutations(a):
num.append("".join(i)) # 튜플 원소 전부 합쳐서 추가 (문자열로 입력받았기 때문에 문자열)
for i in num:
if i[0] == "0":
continue
i = int(i)
if i < int(b):
c = max(c, i) # c값 갱신
print(c)
풀이
- a와 b를 문자열 형식으로 입력받은 후 a에 대하여 permutation을 수행한 것을 토대로 각 element를 join하는 반복문을 돌린다.
- join한 수를 표현한 문자열의 첫 자리가 0인 경우 자릿수가 다르기 때문에 그 경우에는 패스
- 이후에는 반복적으로 c값을 갱신한다
알게된 점
- 프로그래머스도 그렇고 이 문제도 그렇고 join과 permutation 활용이 미숙했던 것 같다.
- 주말에 join과 perutation의 활용, 그리고 시간복잡도를 공부해야겠다.
참고 사이트
- https://pearlluck.tistory.com/468
[Python] 순열(permutations )과 조합(combinations)
딱 정리 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 combinations('ABCD', 2) AB AC AD BC BD CD combinations_with_replacement('ABCD', 2) AA AB AC AD BB BC BD CC CD D
pearlluck.tistory.com
- https://blockdmask.tistory.com/468
[python] 파이썬 join 함수 정리 및 예제 (문자열 합치기)
안녕하세요. BlockDMask입니다. 오늘은 파이썬에서 리스트를 문자열로 일정하게 합쳐주는 join 함수에 대해서 알아보려고 합니다. join 함수는 문자열을 다룰 때 유용하게 사용할 수 있는 함수이니
blockdmask.tistory.com