티스토리 뷰

728x90

 

[ 코딩 테스트 연습 ]

 

1. 두수의 차

  • 정수 num1과 num 2가 주어질 때, num1에서 num2를 뺀 값을 return 하도록 solution 함수를 완성해주세요.
  • 제한사항 -5000<= num1 , num2 <= 5000
  • 내가 푼 풀이
def solution(num1, num2):
    return num1 - num2

result = solution(2,100)
print(result)

 

  • 다른 사람의 풀이
solution = lambda num1, num2 : num1 - num2

result = solution(2,100)
print(result)

 

 

 

 

 

2. 두수의 곱

  • 정수 num1과 num 2가 매개변수 주어입니다. num1에서 num2를 곱한 값을 return 하도록 solution 함수를 완성해주세요.
  • 제한사항 0<= num1 , num2 <= 100
  • 내가 푼 풀이
def solution(num1, num2):
    return num1 * num2

result = solution(2,100)
print(result)

 

  • 다른 사람의 풀이
solution=lambda x,y:x*y

result = solution(2,100)
print(result)

 

 

 

 

 

 

 

3. 두수의 합

  • 정수 num1과 num 2가 주어질 때, num1에서 num2를 더한 값을 return 하도록 solution 함수를 완성해주세요.
  • 제한사항 -5000<= num1 , num2 <= 5000
  • 내가 푼 풀이
def solution(num1, num2):
     return num1 + num2

result = solution(2,100)
print(result)

 

  • 다른 사람의 풀이
solution=lambda *x:sum(x)

result = solution(2,100)
print(result)
  • 여기서 *x 가 이해가 안됨... 람다는 익명함수 이며, *x는 함수로 들어오는 인수를 튜플로 패킹한다는 뜻입니다. 라고 하는데 모르겠다. 그 안의 인자를 다 묶어서 sum 더한다는 뜻 같다. 그래서 2+100을 한것

 

 

 

 

 

 

 

4. 두수의 나눗셈

  • 정수 num1과 num 2가 매개변수 주어질 때, num1을 num2로 나눈 값에 1000을 곱한 후 정수 부분을 return 하도록 solution 함수를 완성해주세요.
  • 제한사항 0<= num1 , num2 <= 100
  • 내가 푼 풀이
def solution(num1, num2):
    return int((num1 / num2) * 1000) #int는 정수

result = solution(7,3)
print(result) #2333

 

  • 다른 사람의 풀이
solution = lambda x, y: 1000 * x // y

result = solution(7,3)
print(result) #2333
  • ' //  ' 연산자는 파이썬에서 정수 나눗셈(floor division)을 수행합니다. 이 연산자는 나눗셈을 한 후에 소수점 이하를 버리고 정수 부분만을 반환합니다. 즉, 소수점 이하를 버린 나눗셈의 결과를 돌려줍니다.따라서, 1000 * x // y는 x를 y로 나눈 뒤에 1000을 곱한 후, 소수점 이하를 버린 정수 값을 반환합니다.
  • 예를 들어, 5 // 2는 2를 반환하고, 10 // 3은 3을 반환합니다.

 

 

 

 

 

 

5. 두수의 몫

  • 정수 num1과 num 2가 매개변수 주어질 때, num1을 num2로 나눈 몫을 return 하도록 solution 함수를 완성해주세요.
  • 제한사항 0<= num1 , num2 <= 100
  • 내가 푼 풀이
solution = lambda x, y:x // y

result = solution(7,3)
print(result) #2

 

  • 다른 사람의 풀이
  • return int(answer) 로도 풀이할 수 있다.
solution = int.__floordiv__

result = solution(7,3)
print(result) #2

 

  • ' int.__floordiv__ ' 는 파이썬에서 내장된 int 클래스의 __floordiv__ 메서드를 가리킵니다. 이것은 정수를 나누는 데 사용되는 특수 메서드 중 하나입니다.따라서 solution = int.__floordiv__는 solution이라는 변수를 int 클래스의 __floordiv__ 메서드로 설정하는 것을 의미합니다. 이렇게 하면 나중에 solution을 호출하면 내장된 int 클래스의 // 연산자와 동일한 결과가 반환됩니다.
  • 일반적으로 int.__floordiv__(x, y)는 x // y와 동일한 결과를 반환합니다. 즉, 정수 x를 정수 y로 나눈 후에 소수점 이하를 버리고 정수 부분만을 반환합니다.

 

 

 

 

 

 

6. 두수의 나머지값

  • 정수 num1과 num 2가 매개변수 주어질 때, num1을 num2로 나눈 나머지를 return 하도록 solution 함수를 완성해주세요.
  • 제한사항 0<= num1 , num2 <= 100
  • 내가 푼 풀이
def solution(num1, num2):
    return num1 % num2

result = solution(7,3)
print(result) #1

 

  • 다른 사람의 풀이
solution = lambda num1, num2 : num1 % num2

result = solution(7,3)
print(result) #1
def solution(num1, num2):
    #return num1%num2
    while num1 >= num2:
        num1 -= num2
    return num1

result = solution(7,3)
print(result) #1
  • 이 코드는 나머지 연산자 %를 사용하지 않고, 루프를 통해 나머지를 계산하는 방법을 보여준다. ' while ' 루프를 사용하여 num1이 num2보다 크거나 같은 동안 계속해서 num1에서 num2를 빼는 방식으로 구현되어 있습니다. 이 루프가 종료되면, num1은 num2로 나눈 나머지가 되며, 이 값을 반환합니다.

 

 

 

 

 

 

 

7. 두수의 숫자비교하기

  • 정수 num1과 num 2가 매개변수 주어질 때, 두 수가 같으면 1 다르면 -1을 return 하도록 solution 함수를 완성해주세요.
  • 제한사항 0<= num1 , num2 <= 10,000
  • 내가 푼 풀이 : 여기서 처음에 return result = 1 로 해서 에러가 났다. return 1로 해야한다. result 변수 왜 넣었냐ㅠㅠ
def solution(num1, num2):
    if num1 == num2:
        return 1
    else :
        return -1

result = solution(7,3)
print(result) #-1

 

  • 다른 사람의 풀이 ( 같다 ==, 같지 않다 != )
def solution(num1, num2):
    return 1 if num1==num2 else -1

result = solution(7,3)
print(result) #-1

 

def solution(num1, num2):
    return sum([num1==num2])*2-1

 

 

 

 

 

 

 

 

 

8. 나이 출력하기

  • 머쓱이는 40살인 선생님이 몇 년도에 태어 났는지 궁금해졌습니다. 나이 age가 주어질 때, 2022년을 기준 출생 연도를 return 하는 solution 함수를 완성해주세요.
  • 제한사항 : 0 < age ≤ 120, 나이는 태어난 연도에 1살이며 1년마다 1씩 증가합니다.
  • 내가 푼 풀이
def solution(age):
    if 0 < age <= 120:
        return 2022 - age + 1
    else:
        return

result = solution(40)
print(result) #1983
  •  다른 사람의 풀이도 비슷함

 

 

 

 

 

 

 

9. 짝수의 합

  • 정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.
  • 제한사항 : 0 < n ≤ 1000
  • 내가 푼 풀이
def solution(n):
    if 0 < n <= 1000:
        sum_of_evens = 0
        for i in range(2, n+1, 2):
            sum_of_evens += i
        return sum_of_evens
    else:
        return "유효하지 않은 입력입니다. n은 1보다 크고 1000 이하여야 합니다."

result = solution(10)
print(result)  # 출력: 30
  • range 함수를 사용 : range( x부터, y까지, n을 더해라)   range(start, stop, step): start부터 stop 전까지의 정수들을 step 간격으로 생성합니다. 예를 들어, range(0, 10, 2)는 0부터 8까지의 정수를 2씩 증가시키며 생성합니다.

 

  • 다른 사람의 풀이
def solution(n):
    return sum([i for i in range(2, n + 1, 2)])

 

 

 

 

 

 

 

 

10. 각도기

  • 각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요.
    • 예각 : 0 < angle < 90
    • 직각 : angle = 90
    • 둔각 : 90 < angle < 180
    • 평각 : angle = 180
  • 제한사항 : 0 < angle ≤ 180, angle은 정수입니다.
  • 내가 푼 풀이
def solution(angle):
    if 0 < angle < 90:
        return 1
    elif angle == 90:
        return 2
    elif 90 < angle <180:
        return 3
    elif angle == 180:
        return 4
    else:
        return "유효하지 않은 각도이다"

result = solution(90)
print(result)  # 출력: 2

 

  • 다른 사람의 풀이
def solution(angle):
    return 2 if angle==90 else 1 if angle<90 else 4 if angle==180 else 3

result = solution(90)
print(result)  # 출력: 2

 

def solution(angle):
    answer = (angle // 90) * 2 + (angle % 90 > 0) * 1
    return answer

result = solution(90)
print(result)  # 출력: 2

 

  • 180도 까지만 1~4로 출력되고 270도는 6으로 360도는 8로 출력되는 값이다.

 

 

 

 

 

 

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