-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
for문 질문있습니다.
21.05.09 13:50 작성 조회수 210
1
#제가 작성한코드
for i in range(n):
for x in range(m):
cnt[i+x] += 1
else:
continue
#강사님이 작성한코드
for i in range(1,n+1):
for x in range(1,m+1):
cnt[i+x] += 1
else:
continue
같은 건가요??
저는 0~n까지 접근하고,
강사님은 1~n+1까지 접근하고 같은건가요?
답변을 작성해보세요.
1
haon
2021.05.10
다릅니다.
#같습니다.
for i in range(5):
print("Hello World")
#결과: "Hello World"
"Hello World"
"Hello World"
"Hello World"
"Hello World"
for i in range(1, 5+1):
print("Hello World")
#결과: "Hello World"
"Hello World"
"Hello World"
"Hello World"
"Hello World"
위와 같이 "~번반복"하고싶을때는 range(n), range(1, n+1)둘다 괜찮지만 아래와같이 i자체(값)를 사용하고싶을때는 에러가 날 수도있습니다.
arr = [1, 2, 3, 4, 5]
for i in range(5):
print(arr[i])
#결과:1
#2
#3
#4
#5
for i in range(1, 5 + 1):
print(arr[i])
#결과:#2
#3
#4
#5
#Traceback (most recent call last):
# File "/Users/user/Desktop/test/test.py", line 5, in <module>
# print(arr[i])
#IndexError: list index out of range
그리고 아래같은경우도 있습니다.
n = 12
for i in range(n):
if n % i == 0:
print(i, end=' ')
#결과:Traceback (most recent call last):
# File "/Users/user/Desktop/test/test.py", line 3, in <module>
# if n % i == 0:
#ZeroDivisionError: integer division or modulo by zero
for i in range(1, n+1):
if n % i == 0:
print(i, end=' ')
#결과:1 2 3 4 6 12
따라서 필요에 따라 (n), (1, n+1)를 구분하며 사용해야합니다.
0
김태원
지식공유자2021.05.11
안녕하세요^^
이 문제에서 i와 j는 주사위에 눈을 의미합니다. 즉 i값이 정사면체 눈을 의미한다면 i의 값은 1부터 4까지로 표현되어야 가독성도 좋고 의미도 제대로 되어 코드구현이 쉽습니다.
답변 2