-
[PCCE 모의고사 1] 1번 문제 해설알고리즘 이야기/프로그래머스 2022. 11. 2. 09:53
https://school.programmers.co.kr/learn/courses/15006/lessons/121336
-
[PCCE 모의고사 1] 1번 문제
문제 설명 초기 코드는 정수 num1과 num2를 합한 값을 출력하는 코드입니다.
print(num1 + num2)의 출력 결과가 300이 되도록 한 줄을 수정해 보세요.(위 코드 에디터의 '▶' 버튼을 눌러 코드를 실행해 보세요! 오른쪽 콘솔창을 통해 코드의 실행 결과를 볼 수 있습니다.)
-
[PCCE 모의고사 1] 1번 해설
이 문제는 파이썬 산술 연산에 대한 이해를 묻는 문제에요.
산술 연산(arithmetic operation)이란, 쉽게 말해 더하기(+), 빼기(-), 곱하기(×), 나누기(÷) 같은 것들을 말해요.
학교에는 사칙 연산으로 배웠죠?
사칙 연산은 파이썬에서 기호가 조금 달라지는데, 곱하기와 나누기가 그래요. 아래의 표를 볼까요?
학교에서 배운 기호 파이썬의 기호 + + (키보드의 백스페이스 근처) - - (키보드의 백스페이스 근처) × * (키보드의 숫자 8키) ÷ / (키보드의 오른쪽 쉬프트키 옆) 이번에는 파이썬 코드로 사칙 연산을 배워 볼게요. 아래의 코드를 실행해 보면 사칙 연산의 결과를 볼 수 있어요.
그런데 파이썬에서는 기본적으로 7개의 산술 연산을 할 줄 알아야 해요. 학교에서 배운 것 말고도 3개나 더 있죠. 너무 많나요? 그래도 초등학교 때 다 배운 개념이라 어렵지 않을 거에요. 이미 알고 있는 것을 기호로 나타낸 것 뿐이니까요. 아래의 표를 볼까요?
학교에서 배운 의미 파이썬의 기호 예시 제곱 ** (곱하기 기호 두 개) 2**3 = 2의 3제곱 = 2*2*2 = 8 몫 // (나누기 기호 두 개) 10//3 = 10을 3으로 나눈 몫 = 3 나머지 % (키보드의 숫자 5키) 10%3 = 10을 3으로 나눈 나머지 = 1 몫과 나머지를 구하는 것은 초등학교 때, 제곱하는 것은 중학교 때 배우잖아요? 그것을 파이썬 기호로 나타낸 것 뿐이에요. 참 쉽죠? 마찬가지로 아래의 코드를 실행해 볼게요.
파이썬에서 사용되는 산술 연산에 대해 배워봤으니, 문제로 돌아갈까요?
-
문제에서는 num1이 100, num2가 "200"이에요. 이 둘을 더해서 300을 만들라는 것이죠. 참 쉬워보이죠?
다만 num2를 잘 쳐다보니 200 그냥 숫자가 아니라 큰 따옴표(")로 묶인 문자열 이네요.
파이썬에서는 문자(글자)를 따옴표(')나 큰 따옴표(")로 묶어서 표현해요. 따옴표로 묶여 있으면 숫자처럼 보여도 문자인 것이죠. 하지만 콘솔창에서 출력된 결과만 보고서는 이게 숫자인지 문자일지 알 수 없어요. 아래 코드의 실행 결과 처럼요.
그래서 항상 코드를 잘 살펴봐야돼요. 이 문제가 바로 코드를 잘 살펴보라는 문제죠.
100과 200을 더해서 300을 만드는 것은 더하기(+)로 가능해요. 당연하죠? 하지만 100과 "200"을 더하는 것은 다른 문제에요. 숫자와 문자를 더할 수 있을까요? 안되겠죠. 따라서 문자인 "200"을 숫자 200으로 바꿔주기만 하면 돼요. 따옴표만 없애면 된다는 뜻이죠. 아래의 코드 처럼요
숫자와 숫자는 더할 수 있지만 숫자와 문자는 더할 수 없다는 것을 기억하세요!
-
그런데 말입니다,
숫자와 숫자만 더할 수 있는게 안에요. 문자와 문자도 더할 수 있답니다!
'잉? 문자와 문자를 어떻게 더하지?' 라고 생각할 수 있어요.
그래서 파이썬에서는 문자와 문자를 더할 땐 '합친다.' 라고 기억하는게 더 좋아요. 아래의 코드를 볼까요?
str1은 'progr', str2는 'ammers'에요. 이 둘을 합치면? 'programmers'가 되겠죠? 코드를 실행해 봐도 str1과 str2가 합쳐져서 출력되는 것을 볼 수 있어요. 그럼 문자들끼리 빼기(-)나 곱하기(*), 나누기(/)도 가능할까요?
아쉽지만 불가능해요. 더하기는 합친다는 개념과 이어지기 쉽지만.. 나머지 개념들을 문자에 적용하려니 바로 떠오르지 않죠? 그럼 안되는거에요. 안된다 싶으면 안된다고 생각하면 외우지 않아도 떠올리기 쉬워요.
-
그런데 말입니다(2),
숫자와 문자를 더할 순 없어도 곱할 수는 있어요.
'잉?! 더하지도 못하는데 곱하기가 된다고?!' 라고 생각할 수 있어요.
그래서 파이썬에서는 문자와 숫자를 곱할 땐 '뻥튀기 한다.' 라고 기억하는게 좋아요. 물론 전문 용어가 아니에요.
아래의 코드를 보면 쉽게 이해할 수 있어요.
str1은 'programmers', num1은 3이에요. 이 둘을 곱해버리니 'programmers'가 3번 출력돼죠. 3을 곱했기 때문이에요. 문자에 숫자를 곱하면 곱한 수 만큼 뻥튀기 된답니다! 그럴듯하죠?
문자와 숫자를 곱하는 것은 가능하지만, 문자와 숫자를 나누거나 빼거나 더하는 것은 불가능해요. 안될거 같잖아요? 그럼 안되는 거에요. 참 쉽죠?
문자와 문자를 더해서 합치는 것과
문자에 숫자를 곱해서 뻥튀기 하는 것은
파이썬 프로그래밍에서 많이 쓰이는 것이니 꼭 기억하세요! 안녕~
-
네 줄 요약
1. 숫자와 숫자는 산술 연산(7개)할 수 있다.
2. 숫자와 문자는 더할 수 없다.
3. 그런데 문자와 문자는 더할 수 있다. (합쳐짐)
4. 그렇지만 숫자와 문자를 곱할 순 있다. (뻥튀기)
'알고리즘 이야기 > 프로그래머스' 카테고리의 다른 글
[PCCE 모의고사 2] 10번 문제 해설 (0) 2022.11.09 [PCCE 모의고사 1] 10번 문제 해설 (0) 2022.11.03 [PCCE 모의고사 1] 2번 문제 해설 (0) 2022.11.02