티스토리 뷰

728x90

이번에 방학을 맞이하면서 알고리즘 준비를 위해 파이썬을 복습할 겸 파이썬으로 백준을 시작했습니다.
학교 에브리타임 이라는 커뮤니티 앱에서 알고리즘 스터디도 개설하여 참여를 시작했죠.

728x90


오늘의 문제는 10951번 문제인 A+B 출력하기 입니다.
https://www.acmicpc.net/problem/10951

 

10951번: A+B - 4

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

www.acmicpc.net

 

우선 제가 풀었던 코드는 다음과 같습니다.

number=map(int,input().split(' '))
print(number[0]+number[1])

 

오류 내용을 보시면 map 함수에서 오류가 났네요.


그럼 제가 map 함수를 잘못 쓴 것 일까요?

map 함수는 리스트를 형변환 해주는 python의 내장 함수입니다. 그래서 첫 번째 줄은 잘 했죠.
하지만 문제는 오류에서 볼 수 있다시피 두 번째 줄입니다. 

 

map 함수를 적용시키면 결과물은 list 가 아닌 class 의 형태로 나오게 됩니다. 

따라서 인덱스를 사용해 호출할 수 없는 것이었죠!
그러면 어떻게 수정을 해야할까요?

그냥 새로운 리스트에 number를 넣어 선언해주면 이상 없이 출력됩니다!
사실 베스트는 python의 성질을 이용하는 건데 python은 리스트를 사용하지 않아도 두 개의 변수에 저장이 가능합니다.

 

수정한 답안 (1)

number=map(int,input().split(' '))
number = list(number)
print(number[0]+number[1])

1번 수정 답안은 기존의 C언어나 Java의 냄새가 나는 코드에요. number가 2개 생성되고 그것을 인덱스로 접근하는 방식은 python에서 메모리 낭비에 가깝습니다. 따라서 python의 성질을 이용해서 답을 수정해본다면 다음과 같이 작성이 가능합니다.

 

수정한 답안 (1)

A,B=map(int,input().split(' '))
print(A+B)

1번 답안보다는 훨씬 간단한 코드가 된 것 같죠?

처음 봤을 땐 적응이 어려웠는데 python을 만지다보면 적응이 되실 겁니다. 
그럼 다음에도 만나요!

728x90
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크