def two_sum(nums, target):
hash_map = {}
for index, value in enumerate(nums):
remaining = target-value
if remaining in hash_map:
result = []
result.append(hash_map[remaining])
result.append(index)
return result
else :
hash_map[value]=index
nums = [4, 9, 11, 13]
target = 13
print(two_sum(nums, target))
def reverse(number):
result = 0
if number < 0:
number = number * -1
while number >0:
remainder = number%10
result = result*10 + remainder
number = number//10
return -result
else:
while number >0:
remainder = number%10
result = result*10 + remainder
number = number//10
return result
# 다른 분코드
def reverse(number):
if number > 0:
return int(str(number)[::-1])
else:
return int(str(number).replace('-','')[::-1])
print(reverse(-1234))
#짝꿍 풀이
def get_len_of_str(s):
temp_str = []
max_length = 0
for i in range(len(s)):
if s[i] not in temp_str:
temp_str.append(s[i])
else:
temp_str =[s[i]]
if max_length < len(temp_str):
max_length = len(temp_str)
# max_length = max(max_length, len(temp_str))
return max_length
#답안..?
# def get_len_of_str(string):
# dct = {}
# max_so_far = curr_max = start = 0
# for index, i in enumerate(string):
# if i in dct and dct[i] >= start:
# max_so_far = max(max_so_far, curr_max)
# curr_max = index - dct[i]
# start = dct[i] + 1
# else:
# curr_max += 1
# dct[i] = index
# return max(max_so_far, curr_max)
# a = "abcadefgi"
# print(get_len_of_str(a))
# print(get_len_of_str("abcabc"))
str1 = "abcabcabc"
str2 = "aaaaa"
str3 = "sttrg"
str4 = 'abcdefgtajg'
^_^ 이건 아직 못 풀어서... 짝꿍답을 가져왔다. 답안을 보고도 한참 생각했다. 완전 이해하면 한 번 다시 풀어봐야겠다... 약간의 자괴감이 들까 했지만 극복~~~! 짝꿍답은 test를 하나 통과하지 못 한다...
def reverse(number):
if number < 0 or (number % 10 == 0 and number != 0):
return False
else :
if number != int(str(number)[::-1]):
print(int(str(number)[::-1]))
return False
else:
return True
#짝꿍 코맨트
#T/F를 뒤집어 쓰는게 더.. 쓰기 간단할지도?.?
#짝꿍 코드
import math
def same_reverse(num):
# 아래 코드를 입력해주세요.
if num<0:
return False
string_num=str(num)
string_length=len(string_num)
for i in range(math.ceil(string_length/2)):
if string_num[i]!=string_num[string_length-1-i]:
return False
return True
number1 = 123 #f
number2 = 1221 #t
number3 = -1221 #f
number4 = 0 #t
number5 = 1230 #f
풀었다. 시원하다. 이번에는 문제가 무척 쉽기도 했지만, 첫 날에 배운 슬라이싱을 써먹었다. 그리고 머리를 떠돌던 문제 해결 방법을 순서대로 적어보며 문제를 풀었다. 해결하니 무척 행복하다...
def get_prefix(strs):
# 빈 자료형이면 'False'니까
if not strs:
return ''
word_length_list =[]
for string in strs:
word_length_list.append(len(string))
min_length = min(word_length_list)
prefix = ''
for i in range(min_length):
for string in strs:
if string[0][i] != string[i]:
return prefix
prefix += string[i]
'''
짝꿍 코드에서 배운게, join하면 list와 string을 합칠 수 있다는 것
그리고 for문의 순서를 바꾸는 것을 통해 생각한대로 문제 해결할 수 있다는 것
필요한 것이 있으면 반복을 시작하기 전에 미리 구하는 것으로 문제를 간단하게 할 수 있다는 것
해결해야할 문제를 뭉텅이로 놔두지 말고 하나씩 풀어 놓으면
해결하기 좋다는 것
'''
#짝꿍 코드
def get_prefix(strs):
word_length_list=[]
if not strs:
return ''
for string in strs:
word_length_list.append(len(string))
minimum_length=min(word_length_list)
prefix=[]
for i in range(minimum_length):
for string in strs:
if strs[0][i]!=string[i]:
return ''.join(prefix)
prefix.append(strs[0][i])
return ''.join(prefix)
처음에는 이 문제도 문제 풀이 과정을 말로 정리하는 것으로 먼저 접근했다.
반복문을 돌리며 발생할 수 있는 오류(index out of range)를 방지하기 위해 먼저 가장 짧은 단어의 길이를 구했고,
이후에 prefix를 for문을 통해 구했는데, 처음에는 두 for문의 순서를 서로 바꿔써서 원하는 답이 안 나왔다. 왜 그랬을까..? 풀긴 풀었다!
이래서 별찍기를 해야하는건가 싶었다...
그리고 짝꿍 너무 감사하다... 매번 나보다 훨씬 빨리 방법을 생각하고 아는 것도 훨씬 많은데 내가 충분히 생각할 수 있도록 기다려주고 지켜봐준다. 그리고 난처해하면 떠먹여주지 않고 하나씩 힌트를 준다. 그리고 더 효율적인 방법을 생각할 할 수 있도록 해주고 제안해줌... 다정한데 떠먹여주지 않는... 호랑이 훈장님 같은... 느낌의 짝꿍....
너무 감사하고 나도 꼭 도움이 되고싶다...