티스토리 뷰
728x90
[ 코딩 테스트 연습 ]
56. 두 수의 연산값 비교하기
- 연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
- 12 ⊕ 3 = 123
- 3 ⊕ 12 = 312
- 제한사항 : 1 ≤ a, b < 10,000
- 내가 푼 풀이
def solution(a, b):
x = 2 * a * b
y = str(a) + str(b)
if int(x) > int(y):
return int(x)
elif int(x) <= int(y):
return int(y)
print(solution(91,2))
# 출력 : 912
- 다른 사람의 풀이
def solution(a, b):
return max(int(str(a) + str(b)), 2 * a * b)
def solution(a, b):
return int(str(a) + str(b)) if int(str(a) + str(b)) > 2*a*b else 2*a*b
def solution(a, b):
string_ab = str(a) + str(b)
caluated_ab = 2 * a * b
return int(string_ab) if int(string_ab) > caluated_ab else caluated_ab
57. 수 조작하기 1
- 정수 n과 문자열 control이 주어집니다. control은 "w", "a", "s", "d"의 4개의 문자로 이루어져 있으며, control의 앞에서부터 순서대로 문자에 따라 n의 값을 바꿉니다.
- "w" : n이 1 커집니다.
- "s" : n이 1 작아집니다.
- "d" : n이 10 커집니다.
- "a" : n이 10 작아집니다.
- 제한사항 :
- -100,000 ≤ n ≤ 100,000
- 1 ≤ control의 길이 ≤ 100,000
- control은 알파벳 소문자 "w", "a", "s", "d"로 이루어진 문자열입니다.
- 내가 푼 풀이
def solution(n, control):
for i in control:
if i == 'w':
n += 1
elif i == 's':
n -= 1
elif i == 'd':
n += 10
elif i == 'a':
n -= 10
return n
print(solution(0, "wsdawsdassw"))
# 출력 : -1
- 다른 사람의 풀이
def solution(n, control):
key = dict(zip(['w','s','d','a'], [1,-1,10,-10]))
return n + sum([key[c] for c in control])
def solution(n, control):
answer = n
c = { 'w':1, 's':-1, 'd':10, 'a':-10}
for i in control:
answer += c[i]
return answer
def solution(n, control):
control_dict = {'w' : "1" , 's' : "-1", 'd' : "10", 'a' : "-10"}
return eval("+".join(control_dict[letter] for letter in control)) + n
58. 정수찾기
- 정수 리스트 num_list와 찾으려는 정수 n이 주어질 때, num_list안에 n이 있으면 1을 없으면 0을 return하도록 solution 함수를 완성해주세요.
- 제한사항 :
- 3 ≤ num_list의 길이 ≤ 100
- 1 ≤ num_list의 원소 ≤ 100
- 1 ≤ n ≤ 100
- 내가 푼 풀이
def solution(num_list, n):
return 1 if n in num_list else 0
print(solution([1, 2, 3, 4, 5], 3))
# 출력 : 1
- 다른 사람의 풀이
def solution(num_list, n):
answer = 0
if n in num_list:
answer=1
else:
answer=0
return answer
def solution(num_list, n):
return [0,1][n in num_list]
59. 홀짝구분하기
- 자연수 n이 입력으로 주어졌을 때 만약 n이 짝수이면 "n is even"을, 홀수이면 "n is odd"를 출력하는 코드를 작성해 보세요.
- 제한사항 : 1 ≤ n ≤ 1,000
- 내가 푼 풀이
a = int(input())
if a % 2 == 0:
print(f"{a} is even")
else:
print(f"{a} is odd")
- 다른 사람의 풀이
N = int(input())
print(f"{N} is {'even' if N % 2 == 0 else 'odd'}")
a = int(input())
if a % 2 == 0:
print('{} is even'.format(a))
else:
print('{} is odd'.format(a))
n=int(input())
print(f"{n} is {'eovdedn'[n&1::2]}")
- # n is 까진 똑같고 뒤에 even인지 odd인지 출력해야하는데 n&1했을 때 1이면 홀수고 0이면 짝수이니까 만약 짝수라면 0번째자리인 e부터 시작해서 2칸씩 띄워서 even이 나오게 되는겁니다.
60. 뒤에서 5등까지
- 정수로 이루어진 리스트 num_list가 주어집니다. num_list에서 가장 작은 5개의 수를 오름차순으로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
- 제한사항 :
- 6 ≤ num_list의 길이 ≤ 30
- 1 ≤ num_list의 원소 ≤ 100
- 내가 푼 풀이
def solution(num_list):
return sorted(num_list)[:5]
print(solution([12, 4, 15, 46, 38, 1, 14]))
# 출력 : [1, 4, 12, 14, 15]
- sorted() 함수는 파이썬의 내장 함수로, iterable 객체(리스트, 튜플, 문자열 등)를 받아서 정렬된 새로운 리스트를 반환
- 다른 사람의 풀이
def solution(num_list):
answer = []
for i in range(5):
answer.append(min(num_list))
num_list.remove(min(num_list))
return answer
solution = lambda l: sorted(l)[:5]
반응형
'AI웹 개발자 과정 공부 (팀스파르타) > 코딩테스트 연습' 카테고리의 다른 글
24.03.15_TIL (알고리즘 예제 71-80) (0) | 2024.03.15 |
---|---|
24.03.14_TIL (알고리즘 예제 61-70) (5) | 2024.03.14 |
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 |