티스토리 뷰
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로 출력되는 값이다.
반응형
'AI웹 개발자 과정 공부 (팀스파르타) > 코딩테스트 연습' 카테고리의 다른 글
24.03.12_TIL (알고리즘 예제 51-55) (0) | 2024.03.12 |
---|---|
24.03.08_TIL (알고리즘 예제 41-50) (0) | 2024.03.08 |
24.03.07_TIL (알고리즘 예제 31-40) (0) | 2024.03.07 |
24.03.06_TIL (알고리즘 예제 21-30) (0) | 2024.03.06 |
24.03.05_TIL (알고리즘 예제 11-20) (0) | 2024.03.05 |