[Python] 코딩 도장 - n의 배수 판정법
Updated:
코딩 도장 사이트의 문제를 직접 풀어본 내용을 정리하여 올립니다.
코딩 도장에서 여러 문제를 확인할 수 있습니다.
난이도 순으로 차근차근 풀어보려 합니다.
[문제: n의 배수 판정법] - Lv.1
어떤 수 x와 n이 주어졌을때 조건에 따라 x가 n의 배수인지 판별하는 코드를 작성하라.
x는 0 이상의 정수이며 조건에 맞지 않는 입력은 주어지지 않는다.
여기서 하나의 함수인지 여러 함수인지는 본인이 선택하면 된다.
단 절대 산술연산자 중 %와 /는 코드에 없도록 한다.
그리고 divmod() 함수를 쓰는것도 금지한다
코드는 창의적으로 하는 것을 목적으로 한다. 속도는 크게 중점을 두지 않는다.
n의 종류는 2,3,5,7,11,13이다.
원하는 n만 선택해서 풀 수도 있다.
입력: 입력으로 주어질 자연수의 종류를 입력받고 차례로 그 수만큼 정수를 입력받는다.
6
432 2
4 3
635 5
421 7
122 11
143 13
출력
1
0
1
0
0
1
출처: https://codingdojang.com/scode/649?answer_mode=hide
[풀이]
y = 0
i = 1
a = 0
def f(x,n):
y = 0
i = 0
a = 0
while y < x:
y = n*i
i += 1
if y == x:
a = 1
return a
f(122,11)
억지로 만들긴 했는데 x가 나올 때까지 n에 값을 곱해주는 while문을 만들었다.
문제에서 속도는 상관없다고 했지만 이 풀이는 단순 반복이다 보니 창의력이 참 부족한 것 같다.
[추천 풀이]
f = lambda x,n: x in range(0,x+1,n)
f(122,11)
정말 간단하게 풀었다.
range()
로 n 간격만큼 숫자를 생성해 거기에 x가 포함되어 있는지 확인하는 방식이다.
Leave a comment