게시판

검색 결과: 52

, 김 철수님이 작성
 
문의한 코드는 삭제합니다.


idle창에서도 온라인에서도 확인했을때 제대로 나오는데

심사페이지에 똑같이 올리면 문법오류라고 뜹니다

어느 부분이 잘못된 것인지 잘 모르겠습니다 .

(도장_ 관리자님이 수정함 - 원문 제출일: 2020년 8월 20일, 목요일, 오전 10:53)

, 도장_ 관리자님이 작성
 

심사문제는 텍스트 일치로 판단합니다.

포럼 오른쪽 상단에 23.7로 검색하면 이전 답변을 참고할 수 있습니다.

이전 답변을 참고하세요.


https://dojang.io/mod/forum/discuss.php?d=1121&parent=2553


, 도장_ 관리자님이 작성
 
에러가 발생한 이유는 문자열에 숫자를 더하려고 했기 때문입니다.

이전 답변을 참고하세요.


, 이 재욱님이 작성
 

col,row=map(int,input().split(" "))

matrix=[]

for i in range(row):

    matrix.append(list(input()))


for i in range(row):

    for j in range(col):

        if matrix[i][j]==".":

            matrix[i][j]=0

        else:

            continue

for y in range(i-1,i+2):

    for x in range(j-1,j+2):

        if y < 0 or x < 0 or y >= row or x >= col:

            continue

        elif matrix[y][x]=='*':

            matrix[i][j]+= 1

a=matrix

for i in range(len(a)):

    for j in range(len(a[i])):

        print(a[i][j], end='')

    print()

이렇게 코드를 쳤는데 여기서     matrix[i][j]+= 1 부분이 오류가 납니다.

어떻게 해야 지뢰발견할때마다 1을 더하나요?


, 허 가은님이 작성
 
문의한 코드는 삭제합니다.

for q,w,e,r,t in matrix:

    print(q,w,e,r,t)


이렇게 고쳐서 제 idle에선 돌아가고, 정답과 같은 출력값을 내는데 심사에선 코드가 실행되지 않는다고 통과하지 못하네요. 뭐가 문제일까요?

(도장_ 관리자님이 수정함 - 원문 제출일: 2020년 3월 20일, 금요일, 오후 1:32)

, 도장_ 관리자님이 작성
 

IDLE 메뉴에서 New > File을 선택해서 파일로 작성하고 F5 키로 실행해보세요.

일단, 현재 실행되지 않습니다.

Traceback (most recent call last):
  File "/tmp/260017110/main.py", line 39, in <module>
    for q,w,e,r,t in matrix:
ValueError: not enough values to unpack (expected 5, got 3)
이와 같은 에러가 발생합니다.

온라인 파이썬에서 바로 실행하고 결과를 볼 수 있습니다.

https://glot.io/snippets/flq484unu3


입력

3 3

...

...

..*

에 대해서 출력해보면

[[0, 0, 0], [0, 1, 1], [0, 1, '*']]
이렇게 나오는 것을 보면 문제는 제대로 해결하는 것으로 보입니다.

단, 문제가 원하는 형식으로 출력해야 합니다.

000

011

01*

이렇게 출력해야 합니다.

출력 부분을 해결해보세요.

지뢰찾기 판의 크기는 3x3, 5x5, 10x10 등 다양하게 입력됩니다.

출력은 for 문을 두 개 쓰면 됩니다. 중첩 for 루프를 사용하면 됩니다.



, 도장_ 관리자님이 작성
 

                    print(matrix)
                    print(i, ",", j)
                    matrix[i][j] += 1


이렇게 출력해보면 알 수 있습니다.

matrix[i][j]가 '*'이면 지뢰입니다. 이 지뢰는 문자열입니다.

이 문자열에 +1 연산은 할 수 없습니다.

matrix[y][x]도 '*'이고, matrix[i][j]도 '*'입니다.

같은 지뢰를 가리키고 있다는 뜻이죠.

입력을

3 3

...

...

..*

이렇게 해 놓고 디버깅해보세요.


, 허 가은님이 작성
 


col, row = map(int, input().split())

matrix = []

for i in range(row):

    matrix.append(list(input()))

for a in range(row):

    for b in range(col):

        if matrix[a][b] == '*':

            continue

        else:

            matrix[a][b] = 0

i=0

j=0

for i in range(row):

    for j in range(col):

        for y in range(i - 1, i + 2):

            for x in range(j - 1, j + 2):

                if  y < 0 or x < 0 or y >= row or x >= col:

                    continue

                elif matrix[y][x] == '*':

                    matrix[i][j] += 1

for q,w in(matrix):

    print(q,w)


이렇게 코드를 짰는데 elif 문에만 들어가면 matrix[i][j]가 str이 됩니다.

어디가 문제일까요...?

, 도장_ 관리자님이 작성
 

문제가 원하는 형태로만 출력하면 통과합니다.


, Park Solhee님이 작성
 


보기에는 출력결과가 예시와 동일하게 나오는데 어디가 문제인지 잘 모르겠습니다


혹시나 해서 마지막줄에 \n을 출력하지 않도록도 바꾸어보았는데 안되네요 어디를 놓친 걸까요..?

(도장_ 관리자님이 수정함 - 원문 제출일: 2020년 1월 23일, 목요일, 오후 1:40)