[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