4 리스트 조작

5844 단어 AtCoder
이 기사는 졸저 "AtCoder 범인이 "녹색"이 되기 위한 정선 50문 상세 해설"의 샘플입니다
가격:100엔
kindle: htps //w w. 아마존. 이. jp/dp/B09C3TPQYV
booth(pdf): htps // 192. 보오 th. PM / MS / 3179185

이전 : htps : // 이 m/사의 192/이고 ms/4432b669 아04에 69287c05
다음 것 : htps : // m / 192 / ms / 40fdf83 세다 cbc9d68 A6

【목표】
・리스트의 작성, 요소의 추가 방법을 익힌다.

【개요】
B 문제에서 자주 발생하는 숫자 열을 처리하는 문제. 기본적인 리스트의 조작을 이 문제로 익히자.

【방침】
문제문에는 「제거」라고 있지만, 리스트에 받은 후 문제문대로 삭제해 가면 인덱스 번호가 어긋나거나 실행시간이 너무 길거나 해서 힘들어진다.

다음과 같이 구현하면 된다.
(1) 답을 저장하는 리스트(=ans)를 준비한다
(2) 리스트의 요소를 차례로 확인해, X와 다른 숫자라면 ans에 격납한다
(3) ans의 요소를 출력한다

【실장】
입력을 받다
N,X=map(int, input().split())
A=list(map(int, input().split()))

대답을 포함하는 목록을 ans로 정의합니다. ans는 처음 비어 있습니다.
ans=[]

다음에 A의 요소를 차례로 확인해, X와 다른 숫자라면 ans에 추가해 간다.
목록에 추가는
List.append (요소)
라고 쓴다.
for i in range(N):
    if A[i]!=X:
        ans.append(A[i])

A[i]!=X는 "A[i]가 X와 다르다"는 의미. 그 경우는 ans에 A[i]를 추가한다.

마지막으로 대답을 출력한다.
print(*ans)

별표를 붙이지 않고 단순히 print(ans)로 했을 경우, 불필요한 괄호가 붙는다.
예를 들어 ans=[3,6,4]인 경우,
print(ans) → [3, 6, 4]
print(*ans) → 3 6 4
된다.
리스트의 요소를 출력할 때는 별표를 붙이도록 하자.

이 문제에 대해서는 공식 해설의 「해답 예(python)」가 꽤 매니악한 쓰는 방법을 하고 있다. 이 문제를 풀 수 없었던 사람이 읽어도 의미불명일 것이다. 어느 정도 경기 프로그래밍에 익숙해져도 의미가 없기 때문에 신경 쓰지 않아도 된다.

공식 해설의 내용은 알지만 코드 예제를 읽을 수 없다는 것은 자주 있다. 그러한 때는 「제출 결과」로부터 다른 사람의 제출 결과를 보자.
'제출일시'를 두 번 클릭하여 제출이 빠른 순서대로 나란히, 위에서 5개 정도 코드 내용을 확인하면 알기 쉬운 코드가 1개, 2개 나올 것이다.


【코드 전문】
N,X=map(int, input().split())
A=list(map(int, input().split()))

ans=[]

for i in range(N):
    if A[i]!=X:
        ans.append(A[i])

print(*ans)

이 기사는 졸저 "AtCoder 범인이 "녹색"이 되기 위한 정선 50문 상세 해설"의 샘플입니다
가격:100엔
kindle: htps //w w. 아마존. 이. jp/dp/B09C3TPQYV
booth(pdf): htps // 192. 보오 th. PM / MS / 3179185

이전 : htps : // 이 m/사의 192/이고 ms/4432b669 아04에 69287c05
다음 것 : htps : // m / 192 / ms / 40fdf83 세다 cbc9d68 A6

좋은 웹페이지 즐겨찾기