본문 바로가기
알고리즘

2023-04-25 알고리즘 문자열,배열(중복제거)

by jung1911 2023. 4. 25.

 

문제

문자열을 입력으로 주면 문자열의 첫 글자와 마지막 글자를 출력하는 프로그램을 작성하시오.

입력

3
ACDKJFOWIEGHE
O
AB

 

출력
AE
OO
AB

 

시도

 

input으로 3 이라는 횟수를 만들어주고 첫 번째 문자열과 마지막 문자열을 구할려면 0,-1을 사용하면 되겠다라고 생각했다.

 

 

해결 

a = input() 을 사용해서 a[0]+a[-1]를 하니 문제에 정답이 맞았다.

 

 

T = int(input())

for i in range(T):
    a = input()
    print(a[0]+a[-1])

 

 

 

 

 

문제

 

 

 

 

 

 

시도 

  • 중복 제거만 하는줄 알고 set을 사용해 중복을 제거했다. 
  • 문제에서는 앞의 숫자가 중복되지 않으면 출력이 되도록하라는 것이다.
  • [arr[0]] 처음부터 하나씩 비교하면서 answer -1 를 사용 
  • answer[-1] 를 하면 입출력의 예로 1,1,3,3,0,1,1 중 첫 번째 1 의 -1를 해준다. 

 

 

-1에 대한 예시

# 예시 ) 첫번째 반복 회수값 = i
# answer = [4]
# i = 0   a = 4 ==  4

# answer = [4]
# i = 1  a = 4 == 4

# answer = [4]
# i = 2  a = 4 == 4

# answer = [4]
#  i = 3  a = 3 == 4


# answer = [4,3]
#  i = 4  a= 3 == 3


a = [4,4,4,3,3]
print(solution(a))

 

 

문제의 정답

def solution(arr):
    answer = [arr[0]]
    for a in arr:
        if not a == answer[-1]: #!= 가능
            answer.append(a)

    return answer

 

댓글