Day 1.
two_sum함수에 숫자 리스트와 '특정 수'를 인자로 넘기면, 더해서 '특정 수'가 나오는 index를 배열에 담아 return해 주세요.
nums: 숫자 배열
target: 두 수를 더해서 나올 수 있는 합계
return: 두 수의 index를 가진 숫자 배열예를 들어, nums은 [4, 9, 11, 14] target은 13 nums[0] + nums[1] = 4 + 9 = 13 이죠? 그러면 [0, 1]이 return 되어야 합니다.
*target으로 보내는 합계의 조합은 배열 전체 중에 2개 밖에 없다고 가정하겠습니다.
A.
def two_sum(nums, target):
for i in nums:
a = []
a.append(nums.index(i))
a.append(nums.index(target-i))
return a
답을 리스트로 return 해야하기 때문에 새로운 리스트를 만들어주었고, 새 리스트에 nums에 있는 i와 target에서 i를 뺀 값을 append로 추가해주었다.
더 간결한 코드
def two_sum(nums, target):
for num in nums:
return [nums.index(num), nums.index(target - num)]
Day 2.
reverse 함수에 정수인 숫자를 인자로 받습니다.
그 숫자를 뒤집어서 return해주세요.
x: 숫자
return: 뒤집어진 숫자를 반환!
예를 들어,
x: 1234
return: 4321
x: -1234
return: -4321
x: 1230
return: 321
A.
def reverse(number):
if number == 0:
return 0
elif number > 0:
return int(str(number)[::-1])
else:
a = str(number * -1)[::-1]
return int(a) * -1
number가 0일 때 : 0을 리턴
number가 양수일 때 : number를 str으로 바꿔서 reverse시킨 다음 다시 int로 바꿔서 리턴
numer가 음수일 때 : number를 양수로 바꾼 다음 str으로 바꿔서 reverse시킨 다음 int로 다시 바꿔서 -1 을 곱해준 것을 리턴
Day3.
String 형인 str 인자에서 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 반환해주세요.
str: 텍스트
return: 중복되지 않은 알파벳 길이 (숫자 반환)
예를 들어,
str = "abcabcabc"
return 은 3
=> 'abc' 가 제일 길기 때문
str = "aaaaa"
return 은 1
=> 'a' 가 제일 길기 때문
str = "sttrg"
return 은 3
=> 'trg' 가 제일 길기 때문
A.
def get_len_of_str(s):
temp = []
temp2 = []
result= []
for i in s :
temp.append(i)
for i in reversed(range(len(temp))) :
if temp[i] in temp2 :
result.append(len(temp2))
temp2 = []
temp2.append(temp.pop())
continue
temp2.append(temp.pop())
result.append(len(temp2))
return max(result)
s = "sttrg"
print(get_len_of_str(s))
결국 못 풀어서 주명님의 답을 가져왔다.
Day4.
숫자인 num을 인자로 넘겨주면, 뒤집은 모양이 num과 똑같은지 여부를 반환해주세요.
num: 숫자
return: true or false (뒤집은 모양이 num와 똑같은지 여부)
예를 들어,
num = 123
return false
=> 뒤집은 모양이 321 이기 때문
num = 1221
return true
=> 뒤집은 모양이 1221 이기 때문
num = -121
return false
=> 뒤집은 모양이 121- 이기 때문
num = 10
return false
=> 뒤집은 모양이 01 이기 때문
A.
def same_reverse(num):
if str(num) == ''.join(reversed(str(num))):
return True
else:
return False
Day5.
strs은 단어가 담긴 배열입니다.
공통된 시작 단어(prefix)를 반환해주세요.
예를 들어
strs = ['start', 'stair', 'step']
return은 'st'
strs = ['start', 'wework', 'today']
return은 ''
A.
def get_prefix(strs):
if len(strs) == 0:
return ''
result = ''
strs = sorted(strs)
for i in strs[0]:
if strs[-1].startswith(result+i):
result += i
else:
break
return result