Day4

  • n의 배수
  • 공배수
  • 홀짝에 따라 다른 값 반환하기
  • 조건 문자열
  • flag에 따라 다른 값 반환하기

n의 배수

문제 설명

정수 num과 n이 매개 변수로 주어질 때, num이 n의 배수이면 1을 return n의 배수가 아니라면 0을 return하도록 solution 함수를 완성해주세요.

 

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

나이쓰

def solution(num, n):
    return int(num % n == 0)

다른 사람 풀이 : true => 1, false => 0 을 활용해서 이렇게 풀 수도 있군


공배수

문제 설명

정수 number와 n, m이 주어집니다. number가 n의 배수이면서 m의 배수이면 1을 아니라면 0을 return하도록 solution 함수를 완성해주세요.

 

def solution(num, n, m):
    return 1 if num % n == 0 and num % m == 0 else 0
def solution(number, n, m):
    return int(bool(number % n == 0) & bool(number % m == 0))

다른 사람 풀이 :

bool - true/false >> int - 1,0 출력

oh... damn~~~~


홀짝에 따라 다른 값 반환하기

문제 설명

양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.
def solution(n):
    res = 0  
    if n%2==1:
        for i in range (1, n+1, 2):
            res += i
    else:
        for i in range(2, n+1, 2):
            res += i*i
    return res

정답이지만 제 코드는 상당히 기네요. 뭔가 짧고 신박한 다른 사람 풀이 보면 킹받음 

def solution(n):
    if n%2:
        return sum(range(1,n+1,2))
    return sum([i*i for i in range(2,n+1,2)]

다른 사람 풀이 : 

[i*i for in range(2, n+1, 2)] > 리스트 컴프리헨션 표현식 


조건 문자열

문제 설명

문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다.두 수가 n과 m이라면">", "=" : n >= m"<", "=" : n <= m">", "!" : n > m"<", "!" : n < m두 문자열 ineq와 eq가 주어집니다. ineq는 "<"와 ">"중 하나고, eq는 "="와 "!"중 하나입니다. 그리고 두 정수 n과 m이 주어질 때, n과 m이 ineq와 eq의 조건에 맞으면 1을 아니면 0을 return하도록 solution 함수를 완성해주세요.
def solution(ineq, eq, n, m):
    res = 0
    if eq == "=":
        cal = ineq + eq
        if cal == ">=":
            res = int(bool(n >= m))
        elif cal =="<=":
            res = int(bool(n <= m))

    else:
        cal = ineq
        if cal == ">":
            res = int(bool(n > m))
        elif cal =="<":
            res = int(bool(n < m))
    return res

제 코드ㅡㅡ 너무우 길어요

def solution(ineq, eq, n, m):
    return int(eval(str(n)+ineq+eq.replace('!', '')+str(m)))

다른 사람 풀이 :

1. 느낌표를 공백으로 대체 

2. n과 m을 문자열로 변환하여 ineq와 eq 문자열과 함께 문자열을 생성 

3. eval함수로 문자열을 평가하여 비교식 실행 

4. 정수로 변환하여 최종 결과 반환 ( True는 1로, False는 0으로)

eval
문자열을 파이썬 코드로 해석하고 실행함.
단일 표현식을 평가하는 데 사용되며, 표현식은 변수, 연산자, 함수 호출 등이 포함될 수 있다.


replace('!', ' ') 

특정 부분 문자열을 다른 문자열로 대체하는 데 사용됩니다.
replace('!', ' ')는 문자열에서 모든 느낌표(!)를 공백으로 대체하는 것을 의미

 


flag에 따라 다른 값 반환하기

문제 설명

두 정수 a, b와 boolean 변수 flag가 매개변수로 주어질 때, flag가 true면 a + b를 false면 a - b를 return 하는 solution 함수를 작성해 주세요.

 

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

 

야호 오늘도 해냈다

+ Recent posts