안녕하세요 격자판 회문수에서 질문있습니다.
235
작성한 질문수 12
항상 강의 잘듣고있습니다.
격자판 회문수 문제를 강의 듣기전에 혼자 풀어봤는데 마지막 for문(세로로 확인하는 for문) 에서
5자리숫자랑 뒤집어서 5자리 배열 이렇게 비교해서 맞으면 cnt를 증가하려고 rev함수를 만들었는데 왜
마지막 for문에서 rev함수가 적용이 안되는지 궁금합니다 ㅠㅠ디버깅돌려봐도 revTmp = rev(tmp)
했을때 tmp에 있는배열이 뒤집어지면서 revTmp로 들어가야하는데 뒤집어 지지않고 그대로 들어갑니다 어디가 문제인가요..?ㅠㅠ
코드 중간에 print()문은 제대로 찍혔나 확인용으로 넣어본거입니다!
답변 1
0
안녕하세요^^
tmp는 하나의 리스트이고, rev(rev)의 rev매개변수는 tmp주소를 받기 때문에 rev함수가 호출되면 tmp자체가 뒤집어집니다. 즉 rev와 tmp는 같은 메모리를 참조하고 있기 때문에 rev가 뒤집어지면 tmp도 뒤집어집니다.
아래 코드를 문제에 있는 입력으로 출력해보시면 알 수 있을 겁니다.
import sys
sys.stdin = open("in1.txt","r")
def rev(rev):
for i in range(len(rev)//2):
rev[i],rev[-i-1] = rev[-i-1],rev[i]
return rev
aList = [list(map(int, input().split()))for _ in range(7)]
cnt = 0
for i in range(7):
for x in range(3):
if aList[i][x:x+5] == rev(aList[i][x:x+5]):
cnt += 1
else:
continue
print(cnt)
for x in aList:
print(x)
for i in range(7):
for x in range(3):
tmp = []
for y in range(5):
tmp.append(aList[y+x][i])
if i==0:
print(tmp) #원래 tmp
revTmp = rev(tmp)
if i==0:
print(tmp) #리버스 되어 버린 tmp
if tmp == revTmp:
cnt +=1
for x in aList:
print(x)
print(cnt)
기존에 윈도우 10으로 잘 써왔는데 윈도우 11로 바꾸고 나서 채점이 안됩니다.
1
104
2
스택에서 ')'을 만나는 경우
0
109
3
문제가 어디있나요?
0
86
2
변수 or 함수명
0
76
1
침몰하는 타이타닉 문제 질문입니다
0
71
1
AA.py 책점 에러
0
63
1
오늘 구매했는데 파이썬 자료구조 궁금한거 있으면 답변이 잘 될까요.
0
115
2
5.동전분배하기 문제 밑에코드도 정답이될까요?
0
115
1
아나그램 비교 코드
0
123
2
AA.PY파일 복사 후 채점 진행할때 오류 발생합니다.
0
163
2
문제 링크가있나여?
0
153
2
채점기 Time Limit Exceeded 오류 문의
1
178
2
동적계획법은 사용하는 문제
0
132
2
제 코드 좀 봐주세요
0
154
1
예외가 존재할 가능성?
0
100
1
3번이 안풀립니다
0
98
0
5번 틀림
0
124
0
오류원인?
0
104
0
리스트 선언
0
115
1
침몰하는 타이타닉(그리디) 문제 질문
0
114
1
알고리즘
0
72
1
코딩테스트
0
98
1
DFS 순서 질문드립니다.
0
134
2
left, right를 사용한 풀이법에 대한 질문입니다
0
94
1





