본문 바로가기
Programming/Python

[BAEKJOON] 백준 Python 3단계 반복문 11021번 / 11022번 / A+B - 7/ A+B - 8

by EunjiBest 2022. 4. 11.

[BAEKJOON] 백준 Python 3단계 반복문 11021번 /  11022번 / A+B - 7/ A+B - 8

 

 

11021번(A+B - 7)

 

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

입력 : 첫째 줄에 테스트 케이스의 개수 T가 주어진다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력 : 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다.

 

A+B를 출력하는 문제가 엄청나게 많나보다ㅎㅎ 최소 7번까진 있다는거 아녀..ㅎ

뭔가 다 비슷비슷한데, 비슷비슷하지 않은 문제.!

 

1. T를 input으로 받는다.

2. T번 돌아가는 for문을 만든다.

3. input으로 A,B를 받는다

4. T번만큼 돌아가는 x에 1씩 더한다.

4. "Case #x: "와 A+B의 값을 출력한다.

 

T = int(input())
x =0
for i in range(T):
  A,B = map(int, input().split())
  x += 1
  
  print("Case #",x , ":", A+B)

 

이렇게 끝!

하고 정답인줄 알았는데,,

오답이 떴다.

 

문제는 출력값의 Case # 과 x의 띄어쓰기 때문에 그런것같다.

내 출력값 /  백준 예제 출력값

 

즉, #과 1을 붙여줘야하는데..!

 

어딘선가! 사용해봤던 문법의 기억을 끄집어내서

f 문자열 포맷팅을 사용해보았다.

 

T = int(input())
x =0
for i in range(T):
  A,B = map(int, input().split())
  x += 1
  
  print(f'Case #{x}: ', A+B)

 

f 문자열 포맷팅이란

먼저 f를쓰고 작은 따옴표'' 사이에 넣고 싶은 문자를 쓴 후

{} 중괄호 안에 원하는 문자열을 넣어주면 되는 간편한 문법이다.

 

하지만 이것도 출력 형식 오류로 오답처리ㅠㅠ

정수로 출력을 해야하나보다.

 

포맷팅의 종류를 구글링해보았고,

% 포맷팅이라는 것을 알았다

 

답:

T = int(input())
x =0
for i in range(T):
  A,B = map(int, input().split())
  x += 1
  
  print('Case #%s:'%x, A+B)

 

그대로 따라해보니 정답!

 

%s는 문자열 %d는 정수 %f는 실수를 받아온다.

' '  작은 따옴표 안에 출력하고 싶은 문자를 넣고 %s를 넣어준다.

' ' 작은 따옴표 밖에는 %와 함께 변수를 넣어주면

해당 변수의 값이 %s로 들어가 출력이 된다.

 

 

 

11022번 ( A+B - 8)

 

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

입력 : 첫째 줄에 테스트 케이스의 개수 T가 주어진다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력 : 각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다.

 

위에 7번 문제와 뭐가 다른건지 한참을 쳐다봤다.

출력값이 "Case #x: A + B = C"로 출력되는 것이 다르다.

 

A+B의 값이 C가 되는 것 빼고는 위에랑 다른 것없이 풀면 되겠다.

 

1. T 인풋

2. T만큼 돌아가는 for문 만듬

3. A,B를 인풋으로받는다.

4. T번만큼 돌아가는 x가 1씩 더해진다.

5. y에 A+B를 받는다.

6. "Case #x: A + B = C"를 출력한다.

 

T = int(input())
x=0

for i in range(T):
  A,B = map(int, input().split())
  x += 1
  y = A+B


  print('Case #%s:'%x, '%s + %s = %s'%(A, B, y))

 

마지막 출력에서

여러개의 정수를 한번에 포맷팅을 해야한다.

''작은따옴표 안에 %s를 넣어주는 것까지는 똑같고

따옴표 밖에 % 를 붙이고 변수들을 ()괄호로 묶어주면 된다.

 

 

 

첫번쨰 문제를 포맷팅으로 푼 것이 두번째 문제를 푸는 것에 도움이 많이 되었다.

뭔가 이런 문법을 사용하면 될 것같은데~~~?!

라는 생각이 드는 것까지만 해도 큰 발전인것같다.

 

이런 생각조차 안들면 뭐라 검색해야하나 막막하기 때문이다.ㅎㅎ

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글