기록하고 까먹지 말기

16943 본문

전공/백준

16943

yha97 2023. 4. 13. 16:17

날짜 : 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

 

'전공 > 백준' 카테고리의 다른 글

12865  (0) 2023.04.17
14501  (0) 2023.04.14
20438  (0) 2023.04.11
2343  (0) 2023.04.10
17829  (0) 2023.04.07