[Python] 입출력과 사칙연산

2021. 3. 23. 21:49Programming Language/.py

백준 문제를 살펴보면,

입력에 두 자연수 A와 B가 주어진다. (1 ≤ A, B ≤ 10,000) 라는 제한 조건이 있다.

이 조건을 해결하면서 출력을 받으려면 어떻게 해야할까?

 

파이썬 문법을 배운지 오래되었기에 간단한 문제도 설계가 오래 걸린다..

구현하고 싶은 조건은 아래와 같다


1. a와 b는 자연수여야 한다

2. a와 b는 10000을 넘지않아야 한다

3. 두 조건을 만족하지 못하면, "입력한 a와 b가 조건을 충족하지 못함"을 출력하고 종료.


 

1트

 

a = int(input())
b = int(input())

if a < 1 && b > 10000:
    break
else:
    continue

print(a+b)
print(a-b)
print(a*b)
print(a/b)
print(a%b)

 

// a와 b 모두에 해당하는 조건을 사용하지 못했음

// pass 대신 break를 사용해서 구문 오류 발생

// continue 또한 if문에 쓰이지 않음

 

 

2트

a = int(input())
b = int(input())


if a < 1 or a > 10000 or b < 1 or b >10000:
    print("a,b가 자연수 조건을 충족하지 못했음")
else:
    print(a+b)
    print(a-b)
    print(a*b)
    print(a/b)
    print(a%b)

"""
또는 조건을 충족하는 경우로 if문을 사용해 보자.

if a > 1 and a < 10000 and b > 1 and b >10000:
    print(a+b)
    print(a-b)
    print(a*b)
    print(a/b)
    print(a%b)

"""

 

if( ) 괄호 조건안에 모든 것을 다 때려박은 형태..

나눗셈의 결과값의 자릿수 처리가 신경쓰이지만 괜찮은 것 같다.

그래서 제출해 보았다!

 

그리고 나타난 런타임 에러 ...

무슨 일인지 잘 모르겠다. 왜이럴까?싶어서 구글링해보았다

그리고 참조한 다른 사람의 코드를 보고 온 결과, 다수의 사람들이 input을 받을 때 map을 이용하는 것을 발견했다.

 

dojang.io/mod/page/view.php?id=2286

 

파이썬 코딩 도장: 22.6 리스트에 map 사용하기

이번에는 리스트에 map을 사용해보겠습니다. map은 리스트의 요소를 지정된 함수로 처리해주는 함수입니다(map은 원본 리스트를 변경하지 않고 새 리스트를 생성합니다). list(map(함수, 리스트)) tupl

dojang.io

 

3트

a,b = map(int,input().split())

print(a+b)
print(a-b)
print(a*b)
print(int(a/b)) #정수형 자료 출력
print(a%b)

 

결과

a,b = map(int,input().split())

#if a > 1 and a < 10000 and b > 1 and b >10000:

print(a+b)
print(a-b)
print(a*b)
print(int(a/b)) #정수형 자료 출력
print(a%b)

 

if조건 두가지 방법으로 성공..