본문 바로가기
Algorithm./BackJoon

[백준 5597] 과제 안 내신 분..?

by dev챙 2023. 12. 23.

문제

풀이 및 정답

# 1부터 30까지의 리스트를 생성 
num = [i for i in range(1, 31)]

# 입력받은 숫자를 리스트에서 제거
for _ in range(28):
    data = int(input())
    num.remove(data)
print(min(num))
print(max(num))

파이썬 리스트에서 항목 제거하기

remove()메서드의 기본 문법

list_name.remove(value)

  • remove() 메서드는 파이썬 리스트에서 특정 값을 갖는 첫 번째 항목을 제거하는 데 사용
  • 여기서 list_name은 대상이 되는 리스트이고, value는 제거하려는 값
  • 리스트에 해당 값이 여러 번 나타난 경우, remove()는 첫 번째로 나오는 값을 제거
    TypeError: list.remove() takes exactly one argument (0 given)
  • remove() 메서드는 제거된 값을 반환하지 않고 반환 값이 없다는 None을 반환함

예시

#original list
programming_languages = ["JavaScript", "Python", "Java", "C++"]

#print original list
print(programming_languages)

# remove the value 'JavaScript' from the list
programming_languages.remove("JavaScript")

#print updated list
print(programming_languages)

#output

#['JavaScript', 'Python', 'Java', 'C++']
#['Python', 'Java', 'C++']
  • 리스트 안에 포함되어 있지 않은 값을 특정한다면 ValueError 발생
  • 리스트 안에 해당 값이 있는지 없는지 확인하려면 in 키워드를 사용할 것
  • 해당 값의 첫번째 경우만 검색하여 삭제함

in 키워드를 사용한 remove() 메서드

"만약 해당 값이 리스트 안에 있으면 삭제해줘, 없으면 리스트 안에 포함되어 있지 않는 메시지를 보여줘"라는 코드

programming_languages = ["JavaScript", "Python", "Java", "C++"]

if "React" in programming_languages:
    programming_languages.remove("React")
else:
    print("This value does not exist")

#output
#This value does not exist

파이썬 리스트 안에 해당 값에 해당하는 모든 인스턴스 제거하는 법

리스트 축약(list comprehension) 활용하기

리스트 축약이란?

존재하는 리스트로부터 새로운 리스트를 생성하거나 부분 리스트를 생성하는 것. 원본 리스트를 수정하진 않지만 설정한 조건을 만족하는 새로운 것으로 대신 생성하게 됨

# 리스트에서 모든 특정 값에 해당하는 인스턴스 제거
my_list = [1, 2, 3, 2, 4, 5, 2]
value_to_remove = 2

# 리스트 축약을 사용하여 해당 값에 해당하는 모든 인스턴스 제거
my_list = [item for item in my_list if item != value_to_remove]

print(my_list)

개념 참고링크

'Algorithm. > BackJoon' 카테고리의 다른 글

백준 python : 1546 평균  (0) 2023.12.23
백준 python : 10811 바구니 뒤집기  (1) 2023.12.23
[백준 3052] 나머지  (1) 2023.12.23
[백준 18108] 1998년생인 내가 태국에서는 2541년생?!  (0) 2023.12.09
[백준 10926] ??!  (0) 2023.12.09