문제
0 과 1 로 이루어진 길이가 N 인 수열이 주어진다.
이 수열에서 1 과 인접한 0 을 모두 1 로 바꾼 수열을 출력하여라.
입력
첫 줄에 N 이 주어진다.
두 번째 줄에 0 과 1 로 이루어진 수열이 주어진다.
(1 ≤ N ≤ 1,000)
출력
1 과 인접한 0 을 모두 1 로 바꾼 수열을 출력한다.
입력의 예 1
6
1 0 0 0 1 0
출력의 예 1
1 1 0 1 1 1
입력의 예 2
6
1 0 0 0 0 1
출력의 예 2
1 1 0 0 1 1
입력의 예 3
8
0 1 0 0 1 0 0 1
출력의 예 3
1 1 1 1 1 1 1 1
입력의 예 4
10
1 0 0 0 1 1 0 0 0 1
출력의 예 4
1 1 0 1 1 1 1 0 1 1
풀이
- 결과값만 저장해둘 result_list 생성
- 0부터 n까지 순서대로 보면서 data_list[i]가 1인 경우 앞(i-1) 뒤(i+1) 리스트에 1로 기록
- 범위에 초과되지 않게 1 <= i <= n-2
if __name__ == "__main__":
n = int(input())
data_list = list(map(int, input().split()))
result_list = [0] * n
#print(data_list)
for i in range(n) :
if data_list[i] == 1 :
result_list[i] = 1
if 1 <= i :
result_list[i-1] = 1
if i <= n-2 :
result_list[i+1] = 1
print(" ".join(map(str, result_list)))
d
'코테풀이 > 구현' 카테고리의 다른 글
공기청정기 - 확산 알고리즘 (0) | 2022.02.15 |
---|---|
공기청정기 - N칸 확산(마름모 만들기) (0) | 2022.02.15 |
공기청정기-2차원 밀기(이차원 리스트 시계방향 테두리 회전) (0) | 2022.02.15 |
[백준 | 실버5] 2578:빙고 (0) | 2022.01.06 |
[알고리즘랩스] 3. 완전탐색_offset(4방향 체크, 구현) (0) | 2022.01.06 |
공기청정기 - 1차원 확산