◯문제 링크◯
◯코드 미리보기◯
Caselist = []
while True :
Caselist = list(map(int,input().split( )))
if Caselist[0]==0 and Caselist[1] == 0:
break
print("%d"%(Caselist[0]+Caselist[1]))
◯풀이◯
Caselist = []
먼저 사용할 리스트를 선언해준다. 나중에 코드를 다시 보니까 굳이 리스트를 이용할 필요는 없었을 것 같기는 하다.
while True :
조건에서 어긋 날 때 까지 계속 루프를 반복해야 하므로, 무한루프를 만들어준다.
while문은 조건이 1(true)일 경우 안에 있는 코드를 실행시키므로 조건안에 1(true)를 넣어줄 경우 무한루프가 된다.
Caselist = list(map(int,input().split( )))
선언된 리스트 안에 값을 받아준다. map함수를 이용하면 list 안의 값을 int형으로 바꾸어 줄 수 있다.
일단 input().split( )부터 설명하자면, 입력을 받는 값을 공백으로 구별해서 입력받는 것이다. 이 형식은 list이다.
map함수는 반복 가능한 데이터(iterable)들에만 사용이 가능한데, list는 이에 해당하므로 사용이 가능하다.
map('사용할 함수', '원하는 변수')로 사용하는데, 이렇게 하면 값이 리스트로 나오게 된다. 그래서 Caselist의 요소를
넣어도 새로운 리스트롤 선언되기 때문에 초기화가 된다.
if Caselist[0]==0 and Caselist[1] == 0:
break
입력값이 둘 다 0일 경우에는 멈춰야 하기 때문에 조건에 and를 넣어주고, if문 안에는 break를 넣어준다.
print("%d"%(Caselist[0]+Caselist[1]))
그리고 결과값을 출력해준다.
◯배운 것◯
⩥map 함수의 사용조건, map의 결과값이 list를 반환함. map('적용할 함수','원하는 변수')의 형태로 사용해야 함.
리스트나 튜플 같은 자료형에 사용할 때는 앞에 list(map(...))/tuple(map(...))같은 방식으로 사용해야 함
list입력 받을 때 int형변형이 필요할 경우, map함수를 이용해서 한 줄에 출력 할 수 있다.
⩥입력을 여러개를 한번에 받는 경우, 출력도 여러개가 한번에 나온다. 그래서 굳이 list를 추가적으로 만들어줄 필요가 없다.
'python > 문제' 카테고리의 다른 글
[백준/1193]분수찾기 (0) | 2021.01.27 |
---|---|
[백준/2292]벌집 (0) | 2021.01.26 |
[백준/1712]손익분기점 (0) | 2021.01.23 |
[백준/10951]A+B-4 (0) | 2021.01.05 |
[백준/2577]숫자의개수 (0) | 2021.01.01 |