본문 바로가기
알고리즘/CodeUp PS

[CodeUp][Python 기초 100제] 6082번 : [기초-종합] 3 6 9 게임의 왕이 되자

by 빛밤하늘 2021. 8. 5.
반응형

밑의 링크는 CodeUp에서의 문제 링크입니다.

 

[기초-종합] 3 6 9 게임의 왕이 되자(설명)(py)

python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용

codeup.kr

 

 

 

 

 

 

 

 

주의해야 할 점

이 문제에서 3 6 9 게임은 최대 29까지만 진행합니다.

그래서 일의 자리수만 염두에 두고 풀어도 됩니다.

 

만약 30 이상 더 진행되는 3 6 9 게임이라면 다른 방법으로 풀어야합니다.

 

 

 

생각한 풀이 과정

  1. 1 ~ 29 사이 숫자인 30보다 작은 정수 1개를 입력합니다. 입력한 정수를 정수형으로 변환합니다.
  2. 1부터 입력한 정수까지 반복하는 반복문을 만듭니다.
  3. 현재 숫자를 10으로 나눈 나머지인 일의 자리 숫자를 변수 remainder에 저장합니다.
  4. remainder의 값이 3, 6, 9 중 하나라면 X를 출력하고 한 칸을 띄웁니다.
  5. remainder의 값이 3, 6, 9 중 하나가 아니라면 현재 숫자 그대로 출력하고 한 칸을 띄웁니다.
  6. 1부터 입력한 정수까지 과정 3 ~ 과정 5를 반복합니다.



 

 

 

 

 

 

제출한 파이썬 코드

# readline을 사용하기 위해 import합니다.
from sys import stdin


# 1 ~ 29 중 3 6 9 게임의 마지막 숫자 1개를 입력합니다.
# 정수형으로 변환합니다.
end_num = int(stdin.readline())

# 1부터 end_num의 값까지 반복합니다.
for num in range(1, end_num + 1):
    # 3 6 9 게임을 최대 29까지만 진행하므로 
    # 일의 자리 숫자가 3, 6, 9인지만 생각하면 됩니다.
    # 현재 숫자의 1의 자리 숫자를 저장하는 변수를 선언합니다.
    remainder = num % 10

    # 1의 자리 숫자가 3, 6, 9 중 하나라도 속한다면
    if remainder in [3, 6, 9]:
        # X를 출력하고 한 칸 띄어줍니다.
        print('X', end=' ')
    # 그 외의 숫자라면
    else:
        # 현재 숫자를 출력하고 한 칸 띄어줍니다.
        print(num, end=' ')

 

 

 

제출 결과

결과

 

 

 

 

 

 

 

 

느낀 점

처음 제출했을 때는 뭔 정신으로 풀었는지... ㅎㅎ

그냥 3으로 나누었을 때 나머지가 0이면 X로 표시되게 풀어놨네요... 너무 창피합니다... ㅎㅎ

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

반응형

댓글