2 분 소요


단계 제목 설명  
3 반복문 for, while 등의 반복문을 사용해 봅시다.  
  소단계 문제번호 제목
  7 11021 A+B - 7
    A+B를 조금 더 아름답게 출력하는 문제  

##

시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율
1 초 256 MB 222187 109502 94825 49.310%

문제

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

입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다.

각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

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

내 제출

T = int(input())

for i in range(T):
    a, b = map(int, input().split())
    print("Case #",i,":",a+b)

결과

오답: 틀렸습니다.

수정 제출

T = int(input())

for i in range(T):
    a, b = map(int, input().split())
    print("Case #"+str(i+1)+":",a+b)

######

결과

정답

오답 이유

이번문제의 오답은 출력되는 결과의 문제입니다.

Case #1: 2
Case #2: 5
Case #3: 7
Case #4: 17
Case #5: 7

과 같은 출력 형식을 보여야 합니다.

하지만 오답 코드의 출력결과는 다음과 같습니다.

Case # 0 : 10
Case # 1 : 10

띄어쓰기에 있어 차이를 보입니다.

이를 문자열 더하기로 해결합니다.

    print("Case #"+str(i+1)+":",a+b)

str() 함수를 사용해 i+1 을 문자열로 변환, 앞의 문자와 더해주고 뒤의 콜론도 붙여준 뒤 결과물을 출력합니다.

사용된 코드 이론


3) 문자열 합치기

2014년 6월 카카오(Kakao)와 다음(Daum)이 합병했습니다. 그 당시 합병된 회사의 이름은 여러분도 잘 아시다시피 ‘Daum KaKao’였습니다. 이를 파이썬 문자열로는 어떻게 표현할 수 있을까요?

먼저 daum이라는 변수가 ‘Daum’이라는 문자열 객체를 가리키게 해봅시다. 그리고 kakao라는 변수는 ‘KAKAO’라는 문자열 객체를 가리키게 해봅시다.

>>> daum = "Daum"
>>> kakao = "KAKAO"
>>>

이제 두 변수를 더해봅시다. 정수를 더할 때 사용하는 ‘+’ 기호를 그대로 사용해 다음과 같이 작성하면 됩니다.

>>> daum + kakao
'DaumKAKAO'
>>>

‘DaumKAKAO’라는 이름 사이에 공백이 없으니 뭔가 허전합니다. 읽기도 어렵고 가짜 회사가 된 것 같습니다. 문자열을 더할 때 두 문자열 사이에 공백을 하나 넣어보겠습니다. 문자열을 합치는 것은 그냥 숫자를 더하듯이 여러 문자열을 그냥 + 기호로 더하면 됩니다. 공백을 나타내고 싶으면 작은따옴표 사이에 공백을 넣어서 표현하면 됩니다.

>>> daum + ' ' + kakao
'Daum KAKAO'
>>>

이름을 변수로 가리켜 두지 않으면 ‘Daum KAKAO’라는 문자열 객체를 사용할 때마다 두 문자열을 합치는 귀찮은 작업을 해야 합니다. 다음과 같이 합쳐진 문자열을 다른 변수가 가리키게 해줍니다.

>>> daum_kakao = daum + ' ' + kakao
>>> daum_kakao
'Daum KAKAO'
>>>

이제 앞으로는 ‘Daum KAKAO’라는 이름을 출력할 때 daum_kakao라는 변수를 사용하면 됩니다.

str

str(object)은 문자열 형태로 객체를 변환하여 리턴하는 함수이다.

>>> str(3)
'3'
>>> str('hi')
'hi'


참고문헌

3) 문자열 합치기 - 파이썬으로 배우는 알고리즘 트레이딩 (개정판-2쇄)

05-5 내장 함수 - 점프 투 파이썬