inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

섹션 3 탐색&시뮬레이션- 10 스도쿠 문제 질문입니다.

해결된 질문

434

날다람쥐

작성한 질문수 7

0

4중 for문을 하기 싫어서  체크리스트를 3중 리스트로 만들어서 풀었습니다.

3중 리스트 요소를 모두 더하고 싶습니다,

넘파이나 itertools를 사용하면 되긴 하는데 코딩 시험이라 사용을 못할수 있을꺼 같아서

기본적으로 2중~ 다중리스트 sum을 하는 방법이 sum(2중 리스트, []) 이런 방법으로 1차원 리스트로 풀어서 합하는 방법말고는 없나요? 검색해도 잘 안나오네요 

python 코테 준비 같이 해요!

답변 3

1

김태원

다중리스트의 모든 합을 한번에 구해주는 함수가 존재하는지 저도 모르겠습니다. 죄송합니다.

저 같았으면 이렇게 sum([sum(ch3[i][j]) for i in range(3) for j in range(3)]) 리스트 컴프리헨션을 썼을 것 같습니다.

sum 함수를 이용해 다중리스트를 1차원 리스트화 하는 법은 이정민님을 통해 처음 알았습니다. 둘의 수행시간을 아래 코드로 측정해보니 sum으로 1차원화 해서 더하는게 조금 더 좋습니다. 

import time

def Test():
    ans=0
    for i in range(100000):  
        ch3[2][2][0]=i
        #ans+=sum(sum(sum(ch3, []), []))
        ans+=sum([sum(ch3[i][j]) for i in range(3) for j in range(3)])
    return ans

if __name__=="__main__":
    ch3=[[[1, 1, 1, 1, 1, 1, 1, 1, 1],
          [1, 1, 1, 1, 1, 1, 1, 1, 1],
          [1, 1, 1, 1, 1, 1, 1, 1, 1]],
         [[1, 1, 1, 1, 1, 1, 1, 1, 1],
          [1, 1, 1, 1, 1, 1, 1, 1, 1],
          [1, 1, 1, 1, 1, 1, 1, 1, 1]],
         [[1, 1, 1, 1, 1, 1, 1, 1, 1],
          [1, 1, 1, 1, 1, 1, 1, 1, 1],
          [1, 1, 1, 1, 1, 1, 1, 1, 1]]]
    start = time.time()
    print(Test())
    end = time.time()
    print("Time: {} sec".format(end-start))

 

참고로 3차원 리스트를 ch_m=[[[0]*9]*3]*3 처럼 하면 [0]*9라는 동일 객체가 9번 복사되는 것입니다. 이렇게 생성하면 ch_m[0][0][0]=1을 하면 9개의 모든 0번 인덱스에 1이 기록됩니다.

3차원 리스트 생성은 ch_m=[[[0]*9 for _ in range(3)] for _ in range(3)] 처럼 해야 합니다.

0

김태원

채점데이터 수정해 놓았습니다. 1번 데이터에서 위에 코드가 통과되지 않을 겁니다.

0

날다람쥐

3차원 리스트 만드는거 정말 나중에 시험 볼때 실수를 할뻔 했습니다. 감사합니다.

혹시 테스트 케이스 추가가 나중에 가능하시다면 하나 더 추가하면 좋을꺼 같습니다.

잘못된 방법으로 만든 3차원 리스트로  테스트 케이스가 모두 통과가 되었네요.

기존에 윈도우 10으로 잘 써왔는데 윈도우 11로 바꾸고 나서 채점이 안됩니다.

0

76

2

스택에서 ')'을 만나는 경우

0

78

3

문제가 어디있나요?

0

65

2

변수 or 함수명

0

61

1

침몰하는 타이타닉 문제 질문입니다

0

56

1

AA.py 책점 에러

0

57

1

오늘 구매했는데 파이썬 자료구조 궁금한거 있으면 답변이 잘 될까요.

0

111

2

5.동전분배하기 문제 밑에코드도 정답이될까요?

0

110

1

아나그램 비교 코드

0

116

2

AA.PY파일 복사 후 채점 진행할때 오류 발생합니다.

0

160

2

문제 링크가있나여?

0

147

2

채점기 Time Limit Exceeded 오류 문의

1

163

2

동적계획법은 사용하는 문제

0

126

2

제 코드 좀 봐주세요

0

148

1

예외가 존재할 가능성?

0

97

1

3번이 안풀립니다

0

93

0

5번 틀림

0

114

0

오류원인?

0

98

0

리스트 선언

0

106

1

침몰하는 타이타닉(그리디) 문제 질문

0

109

1

알고리즘

0

69

1

코딩테스트

0

92

1

DFS 순서 질문드립니다.

0

126

2

left, right를 사용한 풀이법에 대한 질문입니다

0

91

1