[파이썬 알고리즘 5강] 백준 단계별로 풀어보기 2.2 < 조건문 2>
안녕하세요
스터디에서 같이 공부한 내용을 정리하고자 글을 쓰게 되었습니다~
도움되셨으면 좋겠네요!
본 글에 나와있는 코드들을 직접 쳐보고 실행시키면서
여러가지로 꼬아가며 다양한 실험을 반복하시면
어느새 파이썬이 익숙하고 재밌으실 겁니다~! 화이팅!
참고로 중간 중간 걸려있는 링크들은 글을 읽으시면서 모르는 함수, 문법 등이 나왔을 때 들어가셔서
글에 나온 정도만 이해하실 수 있으면 됩니다. (꼼꼼하게 보실 필요 없어요!)
1. 파이썬 조건문 - 조건식
(2) 리스트와 조건문
① 리스트를 활용한 조건문
저번 시간에는 단일 데이터에 대하여 비교 연산자/논리 연산자 등을 활용해 조건문을 작성하는 시간을 가졌습니다.
위 사진에서는 (1), (2)에 해당하는 부분을 공부한 셈 입니다.
이번에는 단일 데이터 뿐만 아니라 리스트에 저장된 (3) 다중 데이터를 다루는 조건문에 대해 공부해 보겠습니다!
예를 들어 다음과 같은 문제 상황이 있다고 해봅시다.
"20명의 학생 (번호 1~20)중 19명이 숙제를 제출 했다고 하자. 숙제를 낸 19명의 번호가 한 줄에 주어질 때 숙제를 제출하지 않은 학생의 번호를 출력하시오."
submit = list(map(int, input().split())) # 숙제를 제출한 학생의 번호를 입력 받습니다.
for i in range(1, 21) :
if i in submit : # 핵심 코드 <- (원소) in (리스트)의 형식으로 쓰며, (원소)가 (리스트)에 있을 경우 True
continue # 제출 했을 경우 continue로 아무 일도 일어나지 않게 함.
else :
print(i, '가 숙제를 내지 않았습니다.') # 제출 명단에 없으므로 출력
위와 같이 for문을 이용하여 코드를 짜주게 되면 숙제를 제출하지 않은 사람만을 골라 출력할 수 있게 됩니다.
이제 위 코드에 대하여 자세한 설명을 해드리도록 하겠습니다. (for문 기초 : https://wikidocs.net/22)
② 리스트/문자열이 해당 원소를 포함하고 있는지에 따른 참, 거짓 반환 조건식
아래 예제를 보시죠~
# 리스트의 원소 포함 여부
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
if 4 in lst : # lst안에 4가 있는 지 확인
print('lst안에 4가 존재합니다.')
else :
print('lst안에 4가 존재하지 않습니다.')
즉, (원소) in (리스트) 라는 조건식은 (원소)가 (리스트)안에 포함되어 있을 경우 True를 반환합니다.
이때 not (논리 연산자)를 이용하여 같은 의미를 가진 조건문을 아래와 같이 반대로 써줄 수 있습니다.
# 리스트의 원소 포함 여부
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
if 4 not in lst : # lst안에 4가 "없는 지" 확인
print('lst안에 4가 존재하지 않습니다.')
else :
print('lst안에 4가 존재합니다.')
이렇듯 리스트 속 원소의 포함 여부를 판단 할 때는 (원소) in (리스트) 조건식을 사용해주시면 됩니다.
추가적으로 이러한 기능은 리스트 뿐 만 아니라 문자열도 같은 방식의 기능을 제공합니다!
string = '1234'
if '3' in string : # '3' <- str로 써야 올바른 조건식이 됨
print('string 안에 3이 존재합니다')
else :
print('string 안에 3이 존재하지 않습니다.')
나중에 자세하게 설명하겠으나, 문자열을 원소로 가지는 리스트와 문자열(str)은 매우 비슷합니다.
슬라이싱, 인덱스 접근, (원소) in (리스트/문자열) 등 공통점이 많으나, 중요한 차이점이 하나 있습니다.
리스트와 문자열의 차이점은 나중에 설명할 기회가 있을듯 하고 지금 당장은 (원소) in (리스트/문자열)을
둘 다 공통적으로 사용할 수 있다. 라는 사실을 알고 계시면 될 것 같습니다.
입출력에 비하여 비교적 양이 적은 2단계. 조건문 이었습니다! 다음에는 <반복문>을 같이 공부하겠습니다~
'밤샘코딩 > 백준 단계별로 풀어보기 (이론)' 카테고리의 다른 글
[파이썬 알고리즘 7강] 백준 단계별로 풀어보기 3.2 < for문 2> (0) | 2022.11.15 |
---|---|
[파이썬 알고리즘 6강] 백준 단계별로 풀어보기 3.1 < for문 1> (0) | 2022.11.15 |
[파이썬 알고리즘 4강] 백준 단계별로 풀어보기 2.1 < 조건문 1> (0) | 2022.11.15 |
[파이썬 알고리즘 3강] 백준 단계별로 풀어보기 1.3 < 연산자 > (1) | 2022.11.14 |
[파이썬 알고리즘 2강] 백준 단계별로 풀어보기 1.2 < 출력 > (0) | 2022.11.14 |
댓글
이 글 공유하기
다른 글
-
[파이썬 알고리즘 7강] 백준 단계별로 풀어보기 3.2 < for문 2>
[파이썬 알고리즘 7강] 백준 단계별로 풀어보기 3.2 < for문 2>
2022.11.15 -
[파이썬 알고리즘 6강] 백준 단계별로 풀어보기 3.1 < for문 1>
[파이썬 알고리즘 6강] 백준 단계별로 풀어보기 3.1 < for문 1>
2022.11.15 -
[파이썬 알고리즘 4강] 백준 단계별로 풀어보기 2.1 < 조건문 1>
[파이썬 알고리즘 4강] 백준 단계별로 풀어보기 2.1 < 조건문 1>
2022.11.15 -
[파이썬 알고리즘 3강] 백준 단계별로 풀어보기 1.3 < 연산자 >
[파이썬 알고리즘 3강] 백준 단계별로 풀어보기 1.3 < 연산자 >
2022.11.14