[백준 알고리즘] 입출력과 사칙연산(1~11)

borderline0px·2021년 5월 16일
0

백준알고리즘

목록 보기
1/4

처음으로 알고리즘 풀이를 시작하긴 했으나
예상보다 더 못한다,,,나
정말 hello world만 출력 가능 ㅜ
아무 생각말고 무조건 달려야겠다


1단계(문제번호: 2557): Hello World

print("Hello World!")

2단계(문제번호: 1071): We love kriii

print("강한친구 대한육군")
print("강한친구 대한육군")

3단계(문제번호: 10171): 고양이

여기부터 막힘,,ㅋㅋㅋㅋㅋㅋ

print("""\\    /\\
 )  ( ')
(  /  )
 \\(__)|""")
  • 한번에 출력하고 싶으면 """ """ 활용
  • 핵심포인트 : 백슬래시()를 원활히 사용할 수 있느냐?
    파이썬에서는 백슬래시를 사용하면 이스케이프 조합이 될 수 있기 때문에
    원하지 않는 출력이 나올 수 있음
    그러므로 정말 백슬래스 문자열이 나오게 하려면 \ 두 번 작성해야 함
  • 이스케이프 문자: 백슬래시 바로 뒤에 문자를 조합해서(\n: 줄바꿈을 나타냄) 각각 다른 기능을 하게 됨

4단계(문제번호: 10172): 개

print("|\\_/|")
print("|q p|   /}")
print('( 0 )\"\"\"\\')
print('|\"^\"`    |')
print('||_/=\\\\__|')
  • 고양이 문제와 거의 동일
  • 여기서는 백슬래시뿐만아니라 "의 출력에도 주의해서 작성해야함

5단계(문제번호: 1000): A + B

input(), split()함수 전혀 몰랐음
뒤에 문제들에도 계속 사용되어짐

num1, num2 = input().split()
print(int(num1) + int(num2))
  • input(): 사용자로부터 문자열을 입력 받음 => 그래서 int()로 변환해줘야 됨
  • split(): input()함수를 통해 입력받은 문자열을 공백을 기준으로 나눠주는 함수
  • map() : 한줄에 입력받아서 int로 변환해주고싶을때 쓸 수 있는 또 다른 방식
a, b = map(int, input().split())

6단계(문제번호: 1001): A - B

a, b = input().split()
a = int(a)
b = int(b)
print(a - b)
  • 5단계의 코드처럼 적으면 런타임 에러가 났는데
    위의 코드로 적으면 맞다고 나온다
    이유는 구글링 열심히 해봐야겠다

7단계(문제번호: 10998): A x B

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

8단계(문제번호: 1008): A / B

a, b = input().split()
a = float(a)
b = float(b)
print(round(a/b, 9))
  • 예제 출력에서도 알 수 있듯이 이번에는 int 말고 float로 변환시켜주는 것이 관건
  • round(): 첫째 인자로 숫자를, 두번째 인자로 소수점 이하 어디까지 출력할 것인지 넣으면
    원하는 소수점까지 출력해주는 함수

9단계(문제번호: 10869): 사칙연산

a, b = input().split()
a = int(a)
b = int(b)
print(a + b)
print(a - b)
print(a*b)
print(a//b)
print(a%b)
  • 정수 둘을 나눴을 때 정확하게 나누어 떨어지지 않으면 float형으로 출력되기 때문에
    예제 출력처럼 int형으로 출력하려면 //으로 나눠야 함

10단계(문제번호: 10430): 나머지

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

print((a+b)%c)
print(((a%c)+(b%c))%c)
print((a*b)%c)
print(((a%c)*(b%c))%c)

11단계(문제번호: 2588): 곱셈

a = int(input())
b = int(input())
print(a*(b%10), a*((b//10)%10), a*(b//100), a*b)

내머리는 이런 문제조차 한번에 이해하지 못했다,,,
구글링으로 다른 사람들의 풀이를 보고 이해한 것 같다
곱셈 방식을 보는 눈이 약간은 달라진 것 같다
사람의 곱셈 방식과 컴퓨터의 곱셈 방식은 다르다는 것 ㅜ

profile
어려운 게 아니라 낯설어서 그런거야

0개의 댓글