[BOJ/Python] 10951 A+B - 4

2023. 6. 2. 02:44·💻IT Dev/Algorithm
728x90

📌 문제

 

10951번: A+B - 4

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

 

📌 내 코드

# 10951 A+B - 4
import sys
input = sys.stdin.readline

t = int(input())

for _ in range(1, t+1):
    a, b = map(int, input().split())
    sum = a + b
    print(sum)

💡 풀이

문제 아래에 살펴보니 빠진 조건을 찾으신 분이 있길래 당연히 테스트케이스에 대한 입력이 빠진 줄 알고, 테스트케이스를 입력받아 for문을 통해 입력받게끔 했다. 이후 이전에 풀었던 영수증 문제처럼 for문 내에서 출력을 하게끔 print()문을 들여쓰기 후 넣어줬는데, ValueError가 발생했다. 분명히 디버깅을 돌려봐도 결과가 정상적으로 나오는 걸 확인했는데 왜 에러가 나는지 이해가 되질 않았다.

 

그래서 풀이를 검색해봤는데, for문이 아니라 while문을 활용하는 문제였다.

for문의 경우 range()와 함께 쓰게 되면 range(시작하는 수, 마지막 수)로 해줘야 했는데, 내 코드의 경우 이 부분 때문에 테스트케이스 입력을 무조건 받아줘야 원하는 출력을 받아낼 수 있었던 거다. 즉, 테스트케이스를 알지 못하면 사용할 수 없는 코드였다.

 

그래서 while문을 통해 다시 코드를 짜줬다.

# 10951 A+B - 4
import sys
input = sys.stdin.readline

while True:
    a, b = map(int, input().split())
    sum = a + b
    print(sum)

코드를 수정해서 다시 제출했는데 여전히 동일한 에러가 발생했다. while문의 경우 빠져나올 때 break를 걸어줘야 하는 걸로 알고 있는데, 그것 때문인가 싶어서 추가해봐도 별 차이가 없었다.

그래서 결국 블로그를 찾아봤는데, while문만 사용하는 게 아니라 try-except 도 함께 사용해줘야 하는 문제였다. 그래서 풀이를 참고해 다시 풀어봤다.

 

 

📌 수정 후 코드

# 10951 A+B - 4
import sys
input = sys.stdin.readline

while True:
    try:
        a, b = map(int, input().split())
        print(a + b)
    except:
        break

 

 

📌 정리

for문 사용이 익숙해서 반복문 문제는 계속 for문으로만 풀어왔는데, 또다른 반복문인 while문이 있었다는 걸 깜빡하고 왜 안 되는지 고민하는 시간이 길어졌던 문제다. 또, try-except 문을 사용한 문제는 처음이라 이 부분에 대해서도 추가로 찾아봐야 할 것 같다.


try-except 구문

파이썬에서 구문 오류가 발생 할 때 해결할 수 있는 코드

try - except 구문의 기본적인 구조
1. try : 에러가 발생할 가능성이 있는 코드를 작성
2. except : 예외 발생 시 실행할 코드를 작성

try - except 구문으로 코드를 작성해두면 에러가 없을 때는 try 구문 실행 후 except를 지나쳐 그다음 코드를 계속 진행하고, 에러가 발생하면 except 구문 실행

 

 

적극적인 피드백은 언제나 환영입니다:)

 

더보기

참고
https://ooyoung.tistory.com/45

 

'💻IT Dev/Algorithm' 카테고리의 다른 글
  • [BOJ/Python] 2438 별 찍기 - 1
  • [BOJ/Python] 11021 A+B - 7
  • [BOJ/Python] 25304 영수증
  • [BOJ/Python] 8393 합
꾸우._.
꾸우._.
하루에 하나, 기록 한 줄기
  • 꾸우._.
    기록 한 줄기
    꾸우._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (98)
      • 📓Diary (3)
        • Keyword (3)
      • ⌨Tools (10)
        • Figma (10)
      • 🙋‍♀️PM (40)
        • Project Manager (3)
        • Process, Framework (19)
        • UI·UX (7)
      • ✏PMB 18 (13)
      • 💻IT Dev (32)
        • CS (1)
        • Algorithm (30)
        • Python (0)
        • HTML, CSS (1)
  • 블로그 메뉴

    • Tag
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    PM 직무 용어
    Double Diamond Process
    패스오더
    Product manager
    figma
    PM
    UX
    디자인 씽킹
    프로젝트 매니저
    UI
    프로덕트 매니저
    코드스테이츠
    알고리즘
    사칙연산
    PM부트캠프
    주간 회고
    백준
    flo
    Project Manager
    오쌤의 니가스터디
    구현
    Strategy
    Design Thinking Process
    더블 다이아몬드 프로세스
    문자열
    JTBD
    agile
    Algorithm
    BOJ
    Design Thinking
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
꾸우._.
[BOJ/Python] 10951 A+B - 4
상단으로

티스토리툴바