상세 컨텐츠

본문 제목

Codeup 기초100문제 연습(2) - python (문제 6034~ 6064)

Programming/코테 공부

by Dal_pang 2022. 8. 25. 23:19

본문

※ 산술 연산  

ex 1) 정수 2개 입력받아 빼기

a, b = input().split()
a, b = int(a), int(b)
print(a-b)

 혹은 다음과 같이 map을 이용해 바로 int()로 형 변환한 후 a, b 변수에 입력도 가능하다.

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

단순히 int()로 변환해주는 첫번째 소스코드의 두 번째 라인을 한 줄의 코드로 변환시켜줄 수 있어 더 효율적인 듯하다.

 

ex 2) 실수 2개 입력받아 곱하기

f1, f2 = map(float, input().split())
print(f1 * f2)

 

ex 3) 단어, 반복 횟수 입력받아 반복 횟수만큼 단어 출력하기

w, n = input().split()
print(w*int(n))

입력값 : word 3
출력 값 : wordwordword

ex 4) 문장 여러 번 출력하기

n = int(input())
s = input()

print(s*n)

 

ex 5) 정수 두 개 입력받아 거듭제곱 계산하기

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

ex6) 실수 두개 입력받아 거듭제곱 계산

a, b = map(float, input().split())
print(a**b)

ex7) 정수 2개 입력받아 나눈 몫 계산, ex8) 정수 2개 입력받아 나눈 나머지 계산

a, b = map(int, input().split())
print(a/b) #3.333333...
print(a//b) #몫 3
print(a%b) #나머지 1

※ 값 변환 

ex1) 실수를 입력받아 소수점 이하 둘째 자리까지 반올림하기

a=float(input())
print(format(a, ".2f"))

format(변수, "형식"))

a = float(input())
print(format(a, '20.2f'))

입력값 : 39.3

출력 값 :                39.30

 

ex 2) 실수 2개 입력받아 나누기

/ : 나누기

'.3f' : 출력 형식 지정 -> 소수점 아랫자리 3자리까지 출력.

a, b = map(float, input().split())
print(format(a/b, '.3f'))

 

ex 3) 정수 2개 입력받아 합, 차, 곱, 몫, 나머지, 나눈 값 출력 (단, b는 0이 아니다)

a, b = map(int, input().split())
print(f"{a}와 {b}의 계산 결과.")
print("합:", a + b)
print("차:", a - b)
print("곱:", a * b)
print("몫:", a // b)
print("나머지:", a % b)
print("나눈값:", a / b)

결괏값:

> 10 3
10와 3의 계산 결과.
합: 13
차: 7
곱: 30
몫: 3
나머지: 1
나눈값: 3.3333333333333335

 

ex 4) 정수 3개 입력받아 합과 평균 구하기.

a, b, c = map(int, input().split())
print(f"{a}, {b}, {c}의 계산 결과.")
sum = a+b+c
avg = (a+b+c)/3
print(f"합:{sum}, 평균:{avg}")

결괏값 :

> 1 2 3
1, 2, 3의 계산 결과.
합:6, 평균:2.0

※ 비트 시프트 연산 ※

ex 1) 입력된 정수를 비트 시프트를 이용해 2배 곱하기

'<<' : 비트 시프트 연산자로, 왼쪽으로 1개 비트를 옮겨 2배 곱 효과를 낸다.

'>>' : 오른쪽으로 1개 비트를 옮겨 1/2 효과.

a = int(input())
print(a<<1)

입력값 : 1024

출력 값 : 2048

 

ex 2) 정수 두 개 입력받아 a를 2^b 한 값을 출력하기.

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

입력값 : 1 3

출력 값 : 8 ( 1 * (2**3))


※ 비교 연산 ※

ex 1) 두 정수 입력받아 비교하기. a가 b보다 작으면 True, 아닌 경우 False.

a, b = map(int, input().split())
if(a < b):
  print("True")
else:
  print("False")

ex 2) 두 정수를 입력받아 같은 값이면 True, 아닌경우 False

a, b = map(int, input().split())
if(a == b) : print("True")
else : print("False")

ex 3) 두 정수를 입력받아 b의 값이 a 보다 크거나 같으면 True, 아니면 False.

a, b = map(int, input().split())
if(a <= b) : print("True")
else : print("False")

ex 4) 정수 2개를 입력받아 서로 다르면 True, 같으면 False반환

a, b = map(int, input().split())
if(a == b) : print("False")
else : print("True")

※ 논리 연산 ※

ex 1) 정수 입력받아 boolean값 리턴

Python에서 0은 false, 나머지 숫자는 True로 인식된다.

이 점을 토대로 다음과 같이 코드 작성.

a = int(input())
print(bool(a))

bool() : 불린으로 형 변환.

 

ex 2) 참, 거짓 반대로 출력하는 프로그램

a = bool(int(input()))
print(not a)

ex 3) 둘 다 참일 경우 참을 출력하는 프로그램 (AND 연산)

a, b = map(int, input().split())
print(bool(a) and bool(b))

ex 4) 하나라도 참일 경우 참 출력 ( OR 연산 )

a, b = map(int, input().split())
print(bool(a) or bool(b))

ex 5) exclusive or 연산. 서로 True, False값이 다를 때만 참.

a, b = map(int, input().split())
print(bool(a) != bool(b))

=>!= 자리에 ^ 이나 is not을 사용해도 동일한 결과를 리턴 받을 수 있음.

 

ex 6) 참/거짓 값이 같을 때만 True. (불린 값이 같은 경우 참)

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

ex 7)  둘 다 거짓인 경우 참.

a, b = map(int, input().split())
if (bool(a) or bool(b)):
  print("false")
else :
  print("true")

※ 비트단위 논리 연산 ※

ex 1) 비트단위 NOT 연산.

비트단위(bitwise) 연산자 종류 : 

~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor),
<<(bitwise left shift), >>(bitwise right shift)
a = input()
#~를 붙여 비트단위 not 연산
print(~a)

입력값 : 2 (0010)

출력 값 : -3 (1101)

=> 비트 단위 연산이라 -2가 아닌 1101에 해당하는 10진수 -3이 출력됨.

 

ex 2) 비트단위 AND연산

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

입력값 : 3 5

출력값 : 1

 

ex 3) 비트단위 OR연산

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

입력값 : 3 5

출력값 : 7

 

ex 4) 비트단위 XOR연산

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

입력값 : 3 5

출력값 : 6


※ 3항 연산 ※

기본 형식 : "x if C else y"

C :  조건식

x :  참일 경우 실행될 값

y : 거짓일 경우 실행될 값

 

ex 1) 정수 두 개 입력받아 큰 값 출력

a, b = map(int, input().split())
print(a if (a >= b) else b)
#조건식을 충족하여 a가 더 크거나 같은 경우 a 출력,
#b가 더 큰 경우 b 출력

 

ex 2) 정수 세 개 입력받아 가장 작은 값 출력

a, b, c = map(int, input().split())
print((a if (a<c) else c) if(a<b) else (b if (b<c) else c))

=> a와 b를 비교해서 a가 작은 경우 

a와 c를 비교.

=> 이외의 경우 

b와 c를 비교.

결과적으로 가장 작은 값을 출력하게 함.

728x90

관련글 더보기