python 알고리즘 기초 다지기(4)

윤재환·2024년 12월 27일
0

def solution(num, n):
    answer = 0
    if(num % n == 0):
        return 1
    else:
        return 0

풀이는 간단하다 그저 num 과 n 을 %(나머지 연산자)를 사용하고 리턴값을 그에 맞게 해주면된다..

다른 사람 풀이

def solution(num, n):
    return int(not(num % n))

정말 간단하게 했다

내가 생각한거는 0과 1을 어떻게 리턴하지 하고 리턴값을 0, 1 이렇게 따로 리턴했지만

결국 해당값을 나누는 연산자를 했을시 0과 1이 출력이 되기때문에 단 한줄로 할수 있었다.


def solution(number, n, m):
    print(int((number % n == 0) and (number % m == 0)))
    return int((number % n == 0) and (number % m == 0))

첫시도는 int(not))안에다가 설정했지만 값이 반대로 나왓습니다.
그리고 또 찾아보니 not이 boolean의 형태인줄 알았지만 python에서는 논리 연산은 바로 boolean으로 처리하기때문에 not을 배꼬 하니 잘됬습니다.


def solution(n):
    m = 0
    if(n % 2 == 1):
        for i in range(1, n+1, 2):
            m += i
        return m
    else:
        for i in range(2, n+1, 2):
            m += i*i
        return m

for문의 range를 사용해서 풀었습니다
range (start, stop, step)입니다
start = 시작할 수
stop = 멈출 수
step = 얼마씩 증가량 입니다.
이후 m 에 얼마만큼 i를 정가 시키냐를 사용하여 풀었습니다.


def solution(ineq, eq, n, m):
    answer = 0
    if ineq == '<' and eq == '!':
        answer = int(n < m)
    elif ineq == '<' and eq == '=':
        answer = int(n <= m)
    elif ineq == '>' and eq == '!':
        answer = int(n > m)
    elif ineq == '>' and eq == '=':
        answer = int(n >= m)
    return answer

풀면서 막힌 부분은 java 에서는 else if 로 쓰던것이 python에서는 elif로 사용한다는 것이었고
추가로 &&대신에 and를 사용해서 조금 돌아갔습니다.

다른 사람 풀이

def solution(ineq, eq, n, m):
    if eq == '!':
        eq = ''
    return int(eval(f'{n} {ineq}{eq} {m}'))

해당 수식은 f-string으로 작성해서 너무 신박해서 알아보았습니다
여기서 eval는 문자열 형태들을 코드나 수식을 실행 시켜주는 역활을 합니다.


def solution(a, b, flag):
    if(flag):
        answer = a+b
    else:
        answer = a - b
    return answer

간단한 문제라 따로 설명은 적지않겠습니다.

profile
백엔드 개발에 관심있는 1인

0개의 댓글