파이썬 리스트 나누기 질문합니다.

조회수 1653회

안녕하세요 프로그래밍 초보입니다. 리스트 안에 원소를 랜덤한 크기로 나누고자 하는데 어떻게 해야할까요 ?

a = [ 1, 2, 3, 4, 5, 6, 7, 8]

#출력시
a = [[1,2],[3,4,5],[6,7],[8]]
a = [[1,2,3],[4,5],[6,7,8]] 
a = [[2,5,4],[1,3],[6,7,8]]

리스트 안의 원소 들은 셔플을하면서 랜덤하게 나누고 싶은데 방법을 잘 몰라 이렇게 질문을 남깁니다. 도와주신다면 감사하겠습니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

    1. 일단 리스트 a를 셔플해 둡니다.
    2. 빈 리스트 b를 하나 더 만들어 둡니다.
    3. "랜덤한 크기"로 쓸 수 있는 최소치와 최대치 사이에서 정수 c를 랜덤으로 고릅니다. 단 c > a이거나 c < 1일 때는 재시도합니다. (질문글의 예시만 보자면 c1에서 3 사이의 임의의 정수가 되겠죠.)
    4. a[:c]b에 append하고 aa[c:]를 할당합니다.
    5. a가 빈 리스트가 될 때까지 3~4를 반복합니다.
    6. ab를 할당하고 반환합니다. 끝.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)