problem-solving/Python

Ch1. 입출력 & 사칙연산 (Baekjoon)

c0dingcat 2024. 12. 27. 20:34

 

내가 처음 배운 언어가 Java이기에 Java로 코딩 테스트를 공부하다 보니,

코드도 길어지고 처리해야 할 것도 많은 등 번거로움이 있었다.

 

그렇기에 이번에 새로 Python을 독학하여 코딩 테스트를 연습하기로 했다.

Java와 달리 자료형도 없고 세미콜론도 필요 없어서 가독성도 좋고 치기 편했다.

 

 

# 2557 - Hello World
print("Hello World!")

 

단순한 출력 문제이다. (문자열에 겹따옴표, 홑따옴표 상관 X)

그러나 이후에 다른 언어 사용과 혼동하지 않도록 문자는 홑따옴표, 문자열은 겹따옴표 쓰는게 헷갈리지 않는다.

 

# 1000 - A + B
import sys

input = sys.stdin.readline # 입력: 1 2

a, b = map(int, input().split()) # a = 1, b = 2
print(a + b) # 출력: 3
  •  sys.stdin.readline  : 표준 입력 readline 함수(한 줄 단위로 입력 값을 읽음), 원하는 변수에 대입하여 사용
  •  map(함수, 배열) : 두번째 인자(띄어쓰기로 받은 입력 함수)에 첫 번째 인자(int 변환함수)를 적용
  •  input().split() : 구조분해 할당으로 변수 a, b 선언 시 띄어 쓰기를 기준으로 입력받아 변수에 각각 대입
  • python의 print()는 문자열을 기준으로 하기에 int 사용 시 int로 타입 변환을 해주어야 한다. (형변환 안할 시 타입 오류 발생)

 

 

# 1001 - A - B
import sys

input = sys.stdin.readline

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

 

 

# 10998 - A x B
import sys

input = sys.stdin.readline

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

 

# 1008 - A / B
import sys

input = sys.stdin.readline

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

 

# 10869 - 사칙연산
import sys

input = sys.stdin.readline

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

print(a + b)
print(a - b)
print(a * b)
print(a // b)
print(a % b)
  • 나눗셈 연산자 ('/') : 몫과 소수점으로 출력
  • 몫 연산자 ('//') : 몫 출력
  • 나머지 연산자 ('%') : 나머지 출력
# 10926
import sys

input = sys.stdin.readline # 입력: hello

a = input().strip()
print(a + "??!") # 출력: hello??!
  • strip() : 문자열 입력 함수 (줄바꿈 제거)
# 18108 - 2541년을 1998년으로 변환
import sys

input = sys.stdin.readline

a = int(input()) # int로 하나만 받을 시, split() 필요 x
print(a - 543) # 2541 - x = 1998

 

# 10430
import sys

input = sys.stdin.readline

A, B, C = map(int, input().split())

print((A + B) % C)
print(((A % C) + (B % C)) % C)
print((A * B) % C)
print(((A % C) * (B % C)) % C)
  • 일반 수학의 곱셈 연산자(x) -> 컴퓨터의 곱셈 연산자 (*)
# 2588
import sys

input = sys.stdin.readline

a, b = [int(input()) for _ in range(2)] # 줄바꿈으로 입력받기, range(반복 횟수)

print(a * (b % 10), a * ((b % 100) // 10), a * (b // 100), a * b, sep = '\n')

 

(3) 472 x 5    (4) 472 x 8    (5) 472 x 3    (6) 472 x 385

  • 예시 사진을 보면 공통으로 472(a 값)이 들어가고 385(b 값)에는 변동이 필요하다.
    • (3) 385 / 10은 몫은 38 나머지는 5가 된다. => a * (b % 10)
    • (4) 385 / 100은 하면 몫 3, 나머지 85가 되고 85 / 10의 몫은 8이 된다.                                                                                 => a * ((b % 100) // 10)
    • (5) 385 // 100은 몫은 3이 된다. => a * (b // 100)
    • (6) 472 * 385 => a * b
  • print() 시, 콤마로 구분하여 출력 -> 출력문 작성 후 마지막에 sep='\n'을 해주면 기존의 띄어쓰기 출력이 줄바꿈으로 출력된다.
    • sep='/n'을 안할 시 2460 2776 1416 ... 으로 출력 됨
# 11382
import sys

input = sys.stdin.readline

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

 

# 10171 - 고양이 (개행문자 유의)
import sys

print("\\    /\\") ##
print(" )  ( ')")
print("(  /  )")
print(" \\(__)|") ##
  • 역슬래시 ('\') 처리 : 역슬래시 앞에 역슬래시를 하나 더 추가
# 10172 - 개 (개행문자 유의)
import sys

print("|\_/|")
print("|q p|   /}")
print("( 0 )\"\"\"\\") ##
print("|\"^\"`    |") ##
print("||_/=\\\\__|") ##
  • 따옴표(") 처리 : 따옴표 앞에 역슬래시 하나 추가 -> 따옴표 처리 안해 줄 시, 앞에 있는 따옴표가 문자열 따옴표를 닫아줌

'problem-solving > Python' 카테고리의 다른 글

Ch3. 반복문 (Baekjoon)  (1) 2024.12.27
Ch2. 조건문 (Baekjoon)  (2) 2024.12.27