5. 별 출력하기
for문과 while문의 진도가 끝나고
별 찍기 연습문제가 나왔다.
이렇게 계단 형태로 별을 찍되
for문과 if 조건문을 이용하라고 돼 있는데
for i in range(1, 6):
print('*'*i)
이렇게 하니까 정상적으로 출력됐다.
그런데 문제가 의도하는 바가 아닌 거 같아서
아래 답지를 보았는데...
for i in range(5):
for j in range(5):
print('j:', j, sep='', end=' ')
print('i:', i, '\\n', sep='')
이런 코드가 제시돼 있었다. (별은 어디에 -_-?)
그리고 이에 대한 결과는 아래와 같다고 한다.
j:0 j:1 j:2 j:3 j:4 i:0\n
j:0 j:1 j:2 j:3 j:4 i:1\n
j:0 j:1 j:2 j:3 j:4 i:2\n
j:0 j:1 j:2 j:3 j:4 i:3\n
j:0 j:1 j:2 j:3 j:4 i:4\n
(별은 어디에 -_-??)
중첩 루프의 예시라고 하는데
왜 연습문제랑 엉뚱한 걸 알려주는 거지..?
소스코드는 구구단처럼 바깥 루프가 1번 돌 때
내부 루프가 5번 돈다는 걸 말하는 거 같은데
이게 별이랑 무슨 상관인가 한참 생각했다.
이게 계단형 별을 찍는 답지라고 적혀 있는데
문제에 조건문을 이용하라고 돼 있는데
조건문도 없고..
그래서 중첩 루프와 조건문을 이용해서
다시 풀어보았다.
k = 0
for i in range(5):
for j in range(5):
if i == k:
print('*' * (k+1))
k += 1
뭔가 비효율적이고 어거지 같지만
중첩 루프와 조건문이 들어가야 한다는
조건을 만족하기 위해서 꾸겨넣어보았다.
i가 1번 돌아갈 때 j는 5번을 도는데
그때 i와 k라는 임의의 변수값이 일치할 때
별표를 k값 + 1만큼 찍어주는 코드이다.
k + 1을 한 이유는 각 변수의 인덱스를
0부터 시작했기 때문에
맨 처음 회전에서는 별을 안 찍고 넘어가기에
+1을 해 주었다.
아니면 변수값의 시작을 1부터 시작하면
굳이 +1을 안 해도 될 것이다.
Author And Source
이 문제에 관하여(5. 별 출력하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@solarrrrr1010/5.-별-출력하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)