[CodeUp 기초 100제] 6082번 풀이 with 파이썬(python)

Jeony·2021년 9월 14일
0

codeup 기초 100제

목록 보기
82/98
post-thumbnail

문제

종합

친구들과 함께 3 6 9 게임을 하던 영일이는 잦은 실수 때문에 계속해서 벌칙을 받게 되었다.
3 6 9 게임의 왕이 되기 위한 369 마스터 프로그램을 작성해 보자.

** 3 6 9 게임은?
여러 사람이 순서를 정한 후, 순서대로 수를 부르는 게임이다.
만약 3, 6, 9 가 들어간 수를 자신이 불러야 하는 상황이라면, 수를 부르는 대신 "박수(X)" 를 쳐야 한다.
33과 같이 3,6,9가 두 번 들어간 수 일때, "짝짝"과 같이 박수를 두 번 치는 형태도 있다.

예시

for i in range(1, n+1) :
  if i%10==3 :
    print("X", end=' ')    #출력 후 공백문자(빈칸, ' ')로 끝냄

입력 예시

9

출력 예시

1 2 X 4 5 X 7 8 X

답안

모델 답안

n = int(input())

for i in range(1, n+1) :
    if i%10==3 or i%0==6 or i%10==9 :
        print("X", end=" ")
    else:
        print(i, end=" ")

내 답안

n = int(input())

for i in range(1, n+1):
    if i % 10 == 3 or i % 10 == 6 or i % 10 == 9:
        print("X", end=" ")
    else:
        print(i, end=" ")

풀이

내 풀이

저의 경우, 3, 6, 9 게임 문제에서 생각을 가장 많이 했던 것은 3의 곱이 아닌 3, 6, 9 포함 숫자를 찾아내는 거였어요🤷‍♀
3, 6, 9 게임 박수 자리: 3 6 9 13 16 19 23 26 29
다른 것은 차치해두고 3, 6, 9 포함 숫자를 찾아내는 걸 설명하겠습니다.🧐


%: 나누기를 해서 나머지만 표현해주는 연산자!
10으로 나눠서 나머지를 표현하면 이러한 규칙이 나와요

3 % 10 = 3	6 % 10 = 6	9 % 10 = 9
13 % 10 = 3	16 % 10 = 6	19 % 10 = 9
23 % 10 = 3	26 % 10 = 6	29 % 10 = 9

3은 10으로 나누지 못해서 그대로 3이 남아요
13은 10으로 나눠서 몫 1, 나머지 3이 남아요
26은 10으로 나눠서 몫 2, 나머지 3이 남아요
끝!👻


한 줄로 출력하는 방법!!
end="": print()는 한 줄 출력 후 밑으로 개행되는데 end=""는 쌍따옴표("")의 내용으로 이어준다.
end="" 미사용
입력: print("a", "b")
입력: print("c", "d")
출력: a b
출력: c d
end="" 사용
print("a", "b", end="-")
print("c", "d")
출력: a b-c d

input(): 프롬프트를 띄워서 사용자의 입력 받을 수 있게 해준다.
(단, 입력 받은 것은 문자열로 저장된다. print(type()))으로 type() 괄호 안에 변수를 넣고 찍으면 정수인지, 문자열인지, 무슨 타입인지 확일 할 수 있다!)

int(n): 위의 input()에서 말했듯이 input으로 받은 값은 문자열로 저장된다.
산술을 하기 위해, 문자열을 정수로 변환시켜주는 int()를 써서 변환시켜준다.

for문: 반복을 데이터가 남을 때까지 밑에 내용 계속 반복 실행!
for i in 데이터:
(들여쓰기칸) 실행문

ex)

for i in [1, 2 ,3]:
    print(i)
출력: 1
     2
     3

데이터에는 iterable이 들어갈 수 있다.

range(): 괄호 안에 들어가는 숫자만큼의 수열을 표현해준다.
range(3) -> 0, 1, 2 (0부터 3직전까지 표현)
range(1, 3) -> 1, 2 (1부터 시작해서 3직전까지 표현)
range(1, 3, +2) -> 1 (1부터 시작해서 2씩 늘려가서 3직전까지 표현. (1 + 2는 3이므로 3직전까지 표현))

print(): 괄호 안의 내용을 출력!

end="": print()는 한 줄 출력 후 밑으로 개행되는데 end=""는 쌍따옴표("")의 내용으로 이어준다.
입력: print("a", "b")
입력: print("c", "d")
출력: a b
출력: c d

print("a", "b", end="-")
print("c", "d")
출력: a b-c d

profile
알고리즘으로 문제를 해결하다가 포기함

0개의 댓글