티스토리 뷰

728x90

 

 

[ 코딩 테스트 연습 ]

 

 

 

 

 

41. 정수 부분 

  • 실수 flo가 매개 변수로 주어질 때, flo의 정수 부분을 return하도록 solution 함수를 완성해주세요.
  • 제한사항
    • 0 ≤ flo ≤ 100
  • 내가 푼 풀이
def solution(flo):
    return int(flo)

print(solution(69.32))
# 출력 : 69

 

  • 다른 사람의 풀이
def solution(flo):
    return flo//1

 

 

 

 

 

 

 

42. n의 배수 

  • 정수 num n이 매개 변수로 주어질 때, num n의 배수이면 1을 return n의 배수가 아니라면 0을 return하도록 solution 함수를 완성해주세요.
  • 제한사항
    • 2 ≤ num ≤ 100
    • 2 ≤ n ≤ 9
  • 내가 푼 풀이
def solution(num, n):
    if num % n == 0:
        return 1
    else:
        return 0

print(solution(98, 2))
# 출력 : 1

 

  • 다른 사람의 풀이
def solution(num, n):
    return int(not(num % n))
def solution(num, n):
    return int(num % n == 0)
def solution(num, n):
    return 1 if num % n == 0 else 0

 

 

 

 

 

 

 

 

43. 문자열의 앞의 n글

  • 문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string의 앞의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.
  • 제한사항
    • my_string은 숫자와 알파벳으로 이루어져 있습니다.
    • 1 ≤ my_string의 길이 ≤ 1,000
    • 1 ≤ n  my_string의 길이
  • 내가 푼 풀이
def solution(my_string, n):
    return my_string[:n]

print(solution("ProgrammerS123", 11))
# 출력 : ProgrammerS

 

  • 다른 사람의 풀이
solution = lambda a,b : a[0:b]
def solution(my_string, n):
    return ''.join(list(my_string)[:n])

 

 

 

 

 

 

 

 

 

44. 이어 붙인 수 

  • 정수가 담긴 리스트 num_list가 주어집니다. num_list의 홀수만 순서대로 이어 붙인 수와 짝수만 순서대로 이어 붙인 수의 합을 return하도록 solution 함수를 완성해주세요.
  • 제한사항
    • 2 ≤ num_list의 길이 ≤ 10
    • 1 ≤ num_list의 원소 ≤ 9
    • num_list에는 적어도 한 개씩의 짝수와 홀수가 있습니다.
  • 내가 푼 풀이
def solution(num_list):
    odd_sum = ""
    even_sum = ""

    for num in num_list:
        if num % 2 == 0:  # 짝수인 경우
            even_sum += str(num)
        else:  # 홀수인 경우
            odd_sum += str(num)

    return int(odd_sum) + int(even_sum)

print(solution([3,4,5,2,1]))
# 출력 : 393

 

 

  • 다른 사람의 풀이 
def solution(num_list):
    even=int(''.join([str(i) for i in num_list if i % 2 == 0]))
    odd=int(''.join([str(i) for i in num_list if not i % 2 == 0]))
    return even+odd

 

 

 

 

 

 

 

 

 

45. flag 에 따라 다른 값 반환하기 

  • 두 정수 a, b와 boolean 변수 flag가 매개변수로 주어질 때, flag가 true면 a + b를 false면 a - b를 return 하는 solution 함수를 작성해 주세요.
  • 제한사항 : -1,000 ≤ a, b ≤ 1,000
  • 내가 푼 풀이
def solution(a, b, flag):
    if flag:
        return a + b
    else:
        return a - b
    
print(solution(-4, 7, False))
# 출력 : -11
  • 다른 사람의 풀이
solution=lambda a,b,f:[a-b,a+b][f]

 

 

 

 

 

 

 

 

 

 

46. 길이에 따른 연산

  • 정수가 담긴 리스트 num_list가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을 10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요.
  • 제한사항 :
    • 2 ≤ num_list의 길이 ≤ 20
    • 1 ≤ num_list의 원소 ≤ 9
    • num_list의 원소를 모두 곱했을 때 2,147,483,647를 넘는 입력은 주어지지 않습니다.
  • 내가 푼 풀이
def solution(num_list):
    if len(num_list) >= 11:
        return sum(num_list)
    else:
        result = 1
        for num in num_list:
            result *= num
        return result

print(solution([3, 4, 5, 2, 5, 4, 6, 7, 3, 7, 2, 2, 1]))
# 출력 : 51

 

  • 다른 사람의 풀이
def solution(num_list):
    if len(num_list) >= 11:
        return eval('+'.join(list(map(str, num_list))))
    else:
        return eval('*'.join(list(map(str, num_list))))

 

 

 

 

 

 

 

 

 

 

47. 소문자로 바꾸기 

  • 알파벳으로 이루어진 문자열 myString이 주어집니다. 모든 알파벳을 소문자로 변환하여 return 하는 solution 함수를 완성해 주세요.
  • 제한사항 :
    • 1 ≤ myString의 길이 ≤ 100,000 (myString은 알파벳으로 이루어진 문자열입니다.)
  • 내가 푼 풀이
def solution(myString):
    return myString.lower() # lower()는 문자열을 모두 소문자로 변환하는 파이썬의 내장 메서드

print(solution("aBcDeFg"))
# 출력 : abcdefg

 

  • 다른 사람의 풀이
solution=lambda x:x.lower()

 

 

 

 

 

 

 

48. 원소들의 곱과 합 

  • 정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요.
  • 제한사항 :
    • 2 ≤ num_list의 길이 ≤ 10
    • 1 ≤ num_list의 원소 ≤ 9
  • 내가 푼 풀이
def solution(num_list):
    a = 1  # a 는 모든 원소의 곱
    b = 0  # b 는 모든 원소의 합의 제곱

    for num in num_list:
        a *= num
        b += num

    if a < b ** 2 :
        return 1
    else:
        return 0

print(solution([5,7,8,3]))
# 출력 : 0

 

  • 다른 사람의 풀이
def solution(num_list):
    s=sum(num_list)**2
    m=eval('*'.join([str(n) for n in num_list]))
    return 1 if s>m else 0
  • eval() 함수는 문자열로 표현된 파이썬 표현식을 실행하여 그 결과를 반환하는 파이썬 내장 함수입니다. 예를 들어, "2 + 3"이라는 문자열을 eval() 함수에 전달하면 이 문자열이 파이썬 표현식으로 해석되어 계산이 이루어지고, 결과로 5가 반환됩니다. 위의  m=eval('*'.join([str(n) for n in num_list])) 를 해석하면 n의 num_list를 문자로 바꿔서 그 안에 *를 넣어 곱하기로 문자열 함수를 만들어서 쓴다.

 

 

 

 

 

 

 

49. 문자열 곱하기 

  • 문자열 my_string과 정수 k가 주어질 때, my_string k번 반복한 문자열을 return 하는 solution 함수를 작성해 주세요.
  • 제한사항 :
    • 1 ≤ my_string의 길이 ≤ 100
    • my_string은 영소문자로만 이루어져 있습니다.
    • 1 ≤ k ≤ 100
  • 내가 푼 풀이
def solution(my_string, k):
    return my_string * k

print(solution("string", 3))
# 출력 : stringstringstring

 

  • 다른 사람의 풀이
solution = lambda my_string, k: ''.join([my_string * k])

 

 

 

 

 

 

 

 

50. 공배수 

  • 정수 number n, m이 주어집니다. number n의 배수이면서 m의 배수이면 1을 아니라면 0을 return하도록 solution 함수를 완성해주세요.
  • 제한사항 :
    • 10 ≤ number ≤ 100
    • 2 ≤ n, m < 10
  • 내가 푼 풀이
def solution(number, n, m):
    if number % n == 0 and number % m == 0:
        return 1
    else:
        return 0

print(solution(60,2,3))
# 출력 : 1

 

  • 다른 사람의 풀이
def solution(number, n, m):
    return 1 if number%n==0 and number%m==0 else 0

 

 

 

 

 

 

 

 

 

반응형
반응형
TAG
more
최근에 올라온 글