관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

[Spring반] 중간시험 18 - 파이썬 시험 및 문제 풀이 4 : 문제 5~6번 <별 찍기와 반복문> 본문

개발 포트폴리오/수료증 및 시험

[Spring반] 중간시험 18 - 파이썬 시험 및 문제 풀이 4 : 문제 5~6번 <별 찍기와 반복문>

huenuri 2024. 12. 9. 17:36

이번에는 별 찍기 문제인데 잘 모르는 개념이 많아서 학습할 내용이 상당히 많다. 차근차근 코드를 작성하며 공부해 보겠다.


 

 

 

 

파이썬 시험 네 번째

 

문제 5번

반복문을 사용하여 입력받은 줄 수만큼 별(*)을 표시하는 프로그램을 만들어 아래와 같이 출력하시오. 

 

 

파이썬이 익숙하지 않아 틀린 코드를 작성했다. 우선 별 찍기에 관한 문제를 여러 개 풀어보려고 한다.


 

 

 

 

 

설명

  • i가 1부터 증가하면서 *을 i번 반복해서 출력한다.
  • print("*" * i)는 * 문자를 i만큼 반복해서 출력

 

 

 

하지만 range() 함수가 이해가 되지 않아 우선 이 부분부터 공부해야 할 것 같다. 파이썬의 range() 함수는 반복문의 범위를 지정하는 데 사용되는데, 시작값, 끝값, 증가/감소값을 명시적으로 지정할 수 있다.

 

range() 함수의 구조

range(start, stop, step)

  1. start : 반복을 시작할 값 (포함됨)
  2. stop : 반복을 멈출 값 (포함되지 않음)
  3. step : 값의 증가/감소 폭 (기본값: 1)

 

for i in range(n, 0, -1)의 의미

for i in range(n, 0, -1):

 

  1. n (start)
    • 반복이 시작될 값이야. 예를 들어, n=5라면 처음 i는 5부터 시작
  2. 0 (stop)
    • 반복이 멈출 값을 나타내. stop은 포함되지 않음, 즉 i > 0인 동안만 실행돼
  3. -1 (step)
    • step이 -1이면 값이 1씩 감소하며 반복돼

 

 

 

 

 

 

 

 

이제 다시 앞으로 돌아가서 별 찍기 문제도 풀 수 있겠다.


 

 

 

설명

  • i가 n부터 1까지 감소하면서 *을 i번 출력

 

 

 

 

설명

  • " " * (n - i)로 공백을 추가해서 오른쪽으로 정렬
  • *는 i번 출력

 

 

 

설명

  • " " * (n - i)로 공백 추가
  • "*" * (2 * i - 1)로 별 개수를 홀수로 늘려 피라미드 모양을 만듦

 

 

 

 

설명

  • 위쪽 삼각형과 아래쪽 삼각형을 각각 별도의 반복문으로 출력
  • 위쪽은 1부터 n까지, 아래쪽은 n-1부터 1까지 반복

 

 

 

 

설명

  • i + j의 합이 짝수면 *, 홀수면 공백 출력
  • end=""로 한 줄에 연속 출력하고, print()로 줄 바꿈 처리

 

이 별 찍기 안에 문제 풀이가 있었지만 한번 더 코드를 작성해 보겠다.


 

 

 

문제 풀기

 

이번에는 혼자서 풀 수 있을 줄 알았는데 아직은 공부가 많이 필요한 것 같다. 생각해 보니 range의 범위를 지정하지 않았다.

 

 

 


 

 

 

 

 

문제 6번

for 문을 이용하여 다음 list에 들어있는 요소 중 가장 큰 수를 찾아 출력하시오.

 

 

 

 

코드 설명

  1. list[0]를 초기값으로 설정
    • 가장 큰 값을 찾기 위해, 첫 번째 요소를 max_value로 설정
  2. for num in list:
    • 리스트의 모든 요소를 순회하면서 각 요소를 num에 담아 반복
  3. if num > max_value:
    • 현재 요소(num)가 max_value보다 크면, max_value를 업데이트
  4. 결과 출력
    • 최종적으로 업데이트된 max_value를 출력

 

 

 

 

학습을 마치고

여기까지가 파이썬 기초 문제였다. 7번부터는 정말 어려운 문제가 기다리고 있지만 이제 저녁도 먹고 조금 쉬었다가 다음 학습을 진행해 볼 것이다. 오늘 파이썬까지 공부를 다 마치는 것도 의미 있을 것 같다.

이제부터 난 공부의 방향을 바꾸었다. 무조건 진도를 빨리 나가는 것이 아니라 이해가 어느 정도 된 다음에 넘어가는 것으로 말이다.