Baekjoon/IM Level

[백준] 2309 일곱 난쟁이 (브론즈1) / pop(), remove(), clear(), del 정리

hellosonic 2023. 3. 3. 12:35

문제요약

나의 코드 및 설명

  • for i in range(9): \ for j in range(i+1,9) : i를 저장하고, i의 다음 값을 j로 저장한다. (같은 값 중복 확인을 방지하기 위해)
dwarfs = []
for _ in range(9):
    dwarfs.append(int(input()))

fake_sum = sum(dwarfs) - 100
fake_dwarfs = []
for i in range(9):
    for j in range(i+1,9):
        if dwarfs[i] + dwarfs[j] == fake_sum:
            fake_dwarfs.append(dwarfs[i])
            fake_dwarfs.append(dwarfs[j])

dwarfs.pop(dwarfs.index(fake_dwarfs[1]))
dwarfs.pop(dwarfs.index(fake_dwarfs[0]))

dwarfs.sort()
for real_dwarfs in dwarfs:
    print(real_dwarfs)

pop() : 지정한 인덱스의 값을 취득한 후 삭제한다.

l = list(range(10))
print(l)
# >> [0,1,2,3,4,5,6,7,8,9]

print(l.pop(0))
# >> 0

print(l)
# >> [1,2,3,4,5,6,7,8,9]

print(l.pop(3))
# >> 4

print(l)
# [1,2,3,5,6,7,8,9]

clear() : 리스트에 저장된 모든 값을 삭제한다.

l = list(range(10))
print(l)
# >> [0,1,2,3,4,5,6,7,8,9]

l.clear()
print(l)
# >> []

remove() : 지정한 같은 값을 검색 후 처음 값을 삭제한다.

l = ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']
print(l)
# >> ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']

l.remove('Alice')
print(l)
# >> ['Bob', 'Charlie', 'Bob', 'Dave']

l.remove('Bob')
print(l)
# >> ['Charlie', 'Bob', 'Dave']

del : 삭제하고 싶은 값을 인덱스로 지정한다. 여러 개의 값을 지우고 싶을 경우 슬라이스로 범위를 지정한다.

l = list(range(10))
print(l)
# >> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

del l[0]
print(l)
# >> [1, 2, 3, 4, 5, 6, 7, 8, 9]

del l[-1]
print(l)
# >> [1, 2, 3, 4, 5, 6, 7, 8]

del l[6]
print(l)
# >> [1, 2, 3, 4, 5, 6, 8]

##################################

l = list(range(10))
print(l)
# >> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

del l[2:5]
print(l)
# >> [0, 1, 5, 6, 7, 8, 9]

l = list(range(10))
del l[:3]
print(l)
# >> [3, 4, 5, 6, 7, 8, 9]

l = list(range(10))
del l[4:]
print(l)
# >> [0, 1, 2, 3]

l = list(range(10))
del l[-3:]
print(l)
# >> [0, 1, 2, 3, 4, 5, 6]