CS/알고리즘_문제풀이(파이썬)

1차원 조회

Jedy_Kim 2021. 5. 23. 15:42
728x90

문제

길이가 n인 수열이 있다.

어떤 i번 인덱스와 j번 인덱스에 대해 i와 j의 차이가 1이면 "두 인덱스가 인접하다"고 표현한다.

이 수열의 각 인덱스에 대해 인접한 인덱스에 자신과 같은 수가 있으면 1을, 없으면 0을 출력하여라.

입력

첫 줄에 수열의 길이 n이 주어진다.

두 번째 줄에 수열을 구성하는 수 n개가 주어진다.

(3 ≤ n ≤ 1,000, 1 ≤ 수열을 구성하는 수 ≤ n)

출력

첫 줄에 0번 인덱스부터 n-1번 인덱스까지 각 인덱스마다 인접한 인덱스에 같은 수가 있다면 1을, 없다면 0을 출력한다.

입력의 예 1

5

2 3 1 1 4

출력의 예 1

0 0 1 1 0

입력의 예 2

5

1 2 1 3 3

출력의 예 2

0 0 0 1 1

입력의 예 3

7

2 2 2 3 3 3 4

출력의 예 3

1 1 1 1 1 1 0

입력의 예 4

11

1 2 3 4 5 6 7 8 9 10 11

출력의 예 4

0 0 0 0 0 0 0 0 0 0 0

 

#코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
= int(input())
getInfo = list(map(int, input().split()))
answer = [-1 for _ in range(1010)]
arr = list()
arr.append(-1)
for i in range(len(getInfo)):
  arr.append(getInfo[i])
arr.append(-1)
 
for i in range(1, n+1):
  if arr[i] == arr[i-1or arr[i] == arr[i+1]:
    answer[i] = 1
  else:
    answer[i] = 0
    
for i in answer:
  if i != -1:
    print(i, end=' ')
cs

 

반응형

'CS > 알고리즘_문제풀이(파이썬)' 카테고리의 다른 글

조회 알고리즘  (0) 2021.05.23
2차원 조회  (0) 2021.05.23
밀기 알고리즘 -- 파이썬 데크(deque)  (0) 2021.05.23
역방향 밀기  (0) 2021.05.23
정방향 밀기  (0) 2021.05.23