티스토리 뷰

1번에서 4번까지는 단순 출력 문제이고 5번에서 11번까지는 입출력을 포함한 사칙연산 문제입니다.

제 깃허브에도 동일한 코드가 업로드 되어 있습니다.

https://github.com/kmi0817/coding_test_practice/tree/main/baekjoon_step/step1

 

GitHub - kmi0817/coding_test_practice: 백준 홈페이지의 단계별로 풀어보기 코드입니다.https://www.acmicpc.net/

백준 홈페이지의 단계별로 풀어보기 코드입니다.https://www.acmicpc.net/step - GitHub - kmi0817/coding_test_practice: 백준 홈페이지의 단계별로 풀어보기 코드입니다.https://www.acmicpc.net/step

github.com


1. Hello World (2557번)

print("Hello World")

 

2. We love kriii (10718번)

for i in range(2) :
    print("강한친구 대한육군")

 

3. 고양이 (10171번)

출력은 동일한 듯한데, 어떤 코드는 되고 어떤 코드는 안 되고... 예상치 못하게 애를 살짝 먹었습니다.

  • escape 문자: \ 사용
print("\\    /\\")
print(" )  ( ')")
print("(  /  )")
print(" \(__)|")

 

4. 개 (10172번)

이것도 마찬가지로 출력은 같아도 되는 코드, 안 되는 코드가 있었습니다.
혹시 주석 처리한 코드의 출력이 정답 코드의 출력과 다르다면 알려주세요!

print("|\_/|")
print("|q p|   /}")
print("( 0 )\"\"\"\\")
print("|\"^\"`    |")
print("||_/=\\\\__|")

# 이건 틀렸다고 나옴...
# dog = """
# |\_/|
# |q p|   /}
# ( 0 )\"\"\"\\
# |\"^\"`    |
# ||_/=\\__|
# """
# print(dog)

 

5. A+B (1000번)

무척 간단한 내용이지만, 입력한 것이 정수인지, 범위는 알맞은지를 확인하기 위해 try ~ except문을 사용해 보았습니다.
try ~ except문을 거의 사용하지 않았던 터라 무척 어색하네요. 어떤 식으로 try except문을 작성하는지 많이 찾아봐야겠습니다.
C언어로는 1 2 이런 식으로 입력받기 간단한데, 파이썬은 조금 복잡합니다. 이게 맞나...? 마음에 들지 않는 코드입니다,, (주석 처리된 코드)

<12월 28일 수정>

  • A = input(), B = input()으로 코드 작성해도 입력을 1 (띄어쓰기) 4로 하든 1 (엔터) 4로 하든 상관없이 입력됩니다 :)
  • split() 메소드는 리스트를 반환하는데, 이때 리스트 개수만큼의 변수를 왼쪽에 두면 각 변수에 각 원소가 초기화됩니다.
try :
    A, B = input().split()

    A = int(A)
    B = int(B)

    if A > 0 and B < 10 :
        print(A+B)
except :
    print("정수를 입력하시오")

# try :
#     ab_list = input().split(" ")
#     A = int(ab_list[0])
#     B = int(ab_list[1])
# except :
#     print("정수를 입력하세요")

# try :
#     if A > 0 and B < 10 :
#         print(A + B)
# except :
#     print("문제가 발생했습니다.")

 

6. A-B (1001번)

try :
    A, B = input().split()
    A = int(A)
    B = int(B)

    if A > 0 and B < 10 :
        print(A-B)
except :
    print("정수를 입력하시오")

# try :
#     ab_list = input().split(" ")
#     A = int(ab_list[0])
#     B = int(ab_list[1])
# except :
#     print("정수를 입력하세요")

# try :
#     if A > 0 and B < 10 :
#         print(A - B)
# except :
#     print("문제가 발생했습니다.")

 

7. AxB (10998번)

try :
    A, B = input().split()
    A = int(A)
    B = int(B)

    if A > 0 and B < 10 :
        print(A * B)
except :
    print("정수를 입력하시오")

#  try :
#     ab_list = input().split(" ")
#     A = int(ab_list[0])
#     B = int(ab_list[1])
# except :
#     print("정수를 입력하세요")

# try :
#     if A > 0 and B < 10 :
#         print(A * B)
# except :
#     print("문제가 발생했습니다.")

 

8. A/B (1008번)

"절대/상대오차가 10^-9 이하이면 정답이다"라는 문구가 있는데, 그걸 코드에 반영해야 하는 건가?
일단 단순히 나누어 보았습니다!

try :
    A, B = input().split()
    A = int(A)
    B = int(B)

    if A > 0 and B < 10 :
        print(A/B)
except ZeroDivisionError :
    print("0으로 나눌 수 없습니다")
except :
    print("정수를 입력하시오")

# try :
#     ab_list = input().split(" ")
#     A = int(ab_list[0])
#     B = int(ab_list[1])
# except :
#     print("정수를 입력하세요")

# try :
#     if A > 0 and B < 10 :
#         print(A / B)
# except ZeroDivisionError :
#     print("0으로 나눌 수 없습니다.")
# except :
#     print("문제가 발생했습니다.")

 

9. 사칙연산 (10869번)

이때부터 살짝 try except문 사용 방법이 익숙해진 듯합니다. 위에 문제들처럼 굳이 try except문을 2개 만들 필요가 없을 것 같아요.

try :
    a, b = input().split()
    A = int(a)
    B = int(b)

    if A >= 1 and B <= 10000 :
        print(A+B)
        print(A-B)
        print(A*B)
        print(A//B)
        print(A%B)
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
except :
    print("정수를 입력하시오")

# try :
#     ab_list = input().split(" ")
#     A = int(ab_list[0])
#     B = int(ab_list[1])

#     if A >= 1 and B <= 10000 :
#         print(A+B)
#         print(A-B)
#         print(A*B)
#         print(A//B)
#         print(A%B)
# except ZeroDivisionError :
#     print("0으로 나눌 수 없습니다.")
# except :
#     print("정수를 입력하세요.")

 

10. 나머지 (10430번)

  • A in range(2, 10001) : 정수 A는 2와 10000 사이의 값인지 확인합니다. (10000 포함)
try :
    a, b, c = input().split()
    A = int(a)
    B = int(b)
    C = int(c)

    # if A >= 2 and A <=10000 and B >= 2 and B <=10000 and C >= 2 and C <=10000 :
    if A in range(2, 10001) and B in range(2, 10001) and C in range(2, 10001):
        print((A+B)%C)
        print(((A%C) + (B%C)) % C)
        print((A*B)%C)
        print(((A%C) * (B%C)) % C)
except :
    print("정수를 입력하시오")

# try :
#     abc_list = input().split(" ")
#     A = int(abc_list[0])
#     B = int(abc_list[1])
#     C = int(abc_list[2])

#     # if A >= 2 and A <=10000 and B >= 2 and B <=10000 and C >= 2 and C <=10000 :
#     if A in range(2, 10001) and B in range(2, 10001) and C in range(2, 10001):
#         print((A+B)%C)
#         print(((A%C) + (B%C)) % C)
#         print((A*B)%C)
#         print(((A%C) * (B%C)) % C)
#     else :
#         print("범위가 올바르지 않습니다.")

# except :
#     print("정수입력")

 

11. 곱셈 (2588번)

  • 2번째로 입력받는 값은 문자열 그대로 둡니다.
  • 문자열 인덱싱을 통해 일의 자리, 십의 자리, 백의 자리 숫자에 각각 접근한 뒤 int()를 적용합니다.
try :
    x = int(input())
    y = input()

    last = x * int(y[2])
    print(last)

    middle = x * int(y[1])
    print(middle)

    first = x * int(y[0])
    print(first)

    result = x * int(y)
    print(result)
except :
    print("정수를 입력하세요")
728x90