# 일단 for문으로 문자열의 인덱스별로 돌려야 함
# 돌리면서 새로운 변수에 하나씩 저장하는데
# 이미 새로운 변수에 해당 문자가 있으면 저장 안 하고 넘어감
# 완성된 새로운 변수 반환
def solution(my_string):
answer = ''
for abc in my_string:
for i in answer:
if abc != i:
answer += abc
return answer
my_string1 = 'people'
my_string2 = 'We are the world'
print(solution(my_string1))
print(solution(my_string2))
# 출력화면
# (없음)
오랜만에 알고리즘 문제 풀어서 그런가 내가 봐도 말도 안 되는 코드를 짠 것 같다
말은 쉬운데 구현하려니 모르겠네...
혼자 풀다가 제껴뒀는데 페어프로그래밍 하면서 풀었다 ㅎㅎ...그래서 내 풀이는 아니지만 그래도 팀원이랑 같이 푼 거니까 남겨야겠다
원래 문자열을 하나씩 돌리면서 중복값을 제거한 문자열에 해당 문자가 있으면 바로 값을 리턴하는 것이다
그걸 이 문제에 맞춰서 일단 answer라는 빈 리스트에 해당 문자를 append 하기로 했다
def solution(my_string):
answer = []
set_string = set(list(my_string))
for i in list(my_string):
if i in set_string:
answer.append(i)
return answer
print(solution("people"))
# 출력화면
# ['p', 'e', 'o', 'p', 'l', 'e']
그랬더니 문자열이 계속 돌아서 그런지 걍 모든 문자가 다 나와버렸다 중복값은 나오면 안 되는데..
고민하다가 팀원분이 의견을 내셨다
def solution(my_string):
answer = []
set_string = set(list(my_string))
for i in list(my_string):
if i in set_string:
if not i in answer: #answer에 해당 문자열이 없는 경우에만 append!!
answer.append(i)
return answer
print(solution("people"))
print(solution("We are the world"))
# 출력화면
# ['p', 'e', 'o', 'l']
# ['W', 'e', ' ', 'a', 'r', 't', 'h', 'w', 'o', 'l', 'd']
중복값이 나오는 문제는 해결이 됐는데 여전히 원하는 출력화면이 아니다
하마터면 팀원분한테 묻어갈 뻔 했는데 다행히 내게 좋은 의견이 있었다!
리스트를 문자열로 변환하는 방법 join !!
def solution(my_string):
answer = []
set_string = set(list(my_string))
for i in list(my_string):
if i in set_string:
if not i in answer:
answer.append(i)
return ''.join(answer) # 리스트를 문자열로 반환함
print(solution("people"))
print(solution("We are the world"))
# 출력화면
# peol
# We arthwold
근데.....페어프로그래밍 끝나고 이렇게 글쓰면서 혼자서 생각을 해보니까....굳이 answer을 빈 리스트로 선언할 필요가 없었던 것 같다는 생각이.....
그래서 answer를 문자열로 선언하고 i를 answer에 더해주는 걸로 바꾸고 answer 자체를 리턴하는 걸로 바꾸니까 이것도 답이 된다!
나의 join은 사실 필요가 없었던 것이었다...!!!
뭔가 입력값 my_string을 리스트로 변환시켜줬으니까 answer도 똑같이 리스트 형태여야 한다고 생각했었다 허허
<완성한 코드>
def solution(my_string):
answer = ''
set_string = set(list(my_string))
for i in list(my_string):
if i in set_string:
if not i in answer:
answer += i
return answer
print(solution("people"))
print(solution("We are the world"))
# 출력화면
# peol
# We arthwold