Covenant

문제

no_continuous함수는 스트링 s를 매개변수로 입력받습니다.


s의 글자들의 순서를 유지하면서, 글자들 중 연속적으로 나타나는 아이템은 제거된 배열(파이썬은 list)을 리턴하도록 함수를 완성하세요.

예를들어 다음과 같이 동작하면 됩니다.


s가 '133303'이라면 ['1', '3', '0', '3']를 리턴

s가 '47330'이라면 [4, 7, 3, 0]을 리턴



나의 답

1
2
3
4
5
6
7
8
9
10
11
12
def no_continuous(s):
    result_list = []
    for i in rangelen(s) ) :
        if i == 0:
            result_list.append(s[i])
        elif s[i] != s[i-1]:
            result_list.append(s[i])
    return result_list
 
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( no_continuous( "133303" ))
 
cs

문자열은 list형식으로 index 번호에 접근할 수 있다. 따라서 6번 라인처럼 s[i] != s[i-1]같이 바로 앞의 값과 같지 않을 때 리스트에 추가하는 코드를 작성할 수 있는 것이다.



다른 사람의 답

1
2
3
4
5
6
7
8
9
10
11
12
13
def no_continuous(s):
    a=[]
    for i in s:
        a.append(i)
    result=[]
    for j in range(len(a)-1):
        if a[j]!=a[j+1]:
            result.append(a[j])
    for j in range(len(a)):
        if a[len(a)-j-1]!=a[len(a)-j-2]:
            result.append(a[len(a)-j-1])
            break
    return result
cs

다른 사람이 삽질한 것을 가져 왔다. s를 인덱스로 접근할 수 있음을 알았다면 3~4라인같이 따로 a라는 배열에다가 s를 넣는 일은 안해도 될 것이다. break는 왜 넣는지 잘 모르겠다...