해결된 질문
작성
·
297
0
input_list = [list(map(int, input().split())) for _ in range(9)]
# 행 체크
for i in range(9):
temp = []
for j in range(9):
temp.append(input_list[i][j])
if len(set(temp)) != 9:
print("NO")
exit()
# 열 체크
for i in range(9):
temp = []
for j in range(9):
temp.append((input_list[j][i]))
if len(set(temp)) != 9:
print("NO")
exit()
# 블럭 단위 체크 9번
temp = []
for i in range(3):
for j in range(3):
temp.append((input_list[i][j]))
if len(set(temp)) != 9:
print("NO")
exit()
temp = []
for i in range(3):
for j in range(3, 6):
temp.append((input_list[i][j]))
if len(set(temp)) != 9:
print("NO")
exit()
temp = []
for i in range(3):
for j in range(6, 9):
temp.append((input_list[i][j]))
if len(set(temp)) != 9:
print("NO")
exit()
temp = []
for i in range(3, 6):
for j in range(3):
temp.append((input_list[i][j]))
if len(set(temp)) != 9:
print("NO")
exit()
temp = []
for i in range(3, 6):
for j in range(3, 6):
temp.append((input_list[i][j]))
if len(set(temp)) != 9:
print("NO")
exit()
temp = []
for i in range(3, 6):
for j in range(6, 9):
temp.append((input_list[i][j]))
if len(set(temp)) != 9:
print("NO")
exit()
temp = []
for i in range(6, 9):
for j in range(3):
temp.append((input_list[i][j]))
if len(set(temp)) != 9:
print("NO")
exit()
temp = []
for i in range(6, 9):
for j in range(3, 6):
temp.append((input_list[i][j]))
if len(set(temp)) != 9:
print("NO")
exit()
temp = []
for i in range(6, 9):
for j in range(6, 9):
temp.append((input_list[i][j]))
if len(set(temp)) != 9:
print("NO")
exit()
print("YES")
이런 식으로 이중 for문으로 모두 처리하는 것은 좋은 풀이가 아닐까요?
강사님 풀이가 훨씬 깔끔하긴 한데, 4중 for문 시간복잡도와 제 풀이 중 어느게 더 빠른지 궁금합니다.
답변 1
0
안녕하세요^^
효율성은 같은 것 같습니다. 영상의 4중 for도 결국 3*3을 9번 한 것입니다. 위에 코드도 3*3을 9번 직접 적은 것 같네요. 저는 영상의 방법을 추천합니다. 위에 코드는 코드라인이 너무 많습니다. 코딩인터뷰 같은데서 위에처럼 짜는 것 보다는 영상처럼 규칙을 발견에 코드라인을 줄여 짜는게 더 좋다고 생각합니다.
답변 감사합니다!
조언 감사합니다!