디지털·가전제품
python 기초 100제 6010번 어떻게 푸나요
정보 시간에 파이썬하고 있는데 하나도 이해가 안 돼요 6010번에서 막혀서 다음 걸 못 풀었는데 다른 애들은 6020까지 풀었어요 다음 주에 수행인데 어떻게 푸나요
2개의 답변이 있어요!
6010번에서 막힌 건 실력 문제가 아니라 파이썬에서 input이 무조건 글자를 준다는 규칙을 아직 못 들으신 거예요. 그 한 줄만 알면 6020번까지는 다 같은 문제라 금방 따라잡습니다.
6010번은 정수 하나를 입력받아서 그대로 정수로 출력하는 문제예요. 그런데 input으로 받은 값은 숫자처럼 보여도 사실 글자라서 이걸 int로 감싸서 숫자로 바꿔줘야 정답 처리가 됩니다. 코드는 딱 두 줄이에요.
n = int(input())
print(n)
첫 줄은 입력을 받아서 정수로 바꿔 n에 담는다는 뜻이고, 둘째 줄은 그걸 출력하는 겁니다. 채점기는 사람이 아니라 프로그램이라 출력 형식이 조금만 달라도 오답이 되니 공백이나 따옴표를 더 넣지 마세요.
이 다음 문제들은 이 틀에서 살짝씩 바뀝니다. 6011은 int 대신 float으로 실수를 받고, 6012나 6013처럼 두 개를 받을 때는 input 뒤에 split을 붙여서 나누고, 두 값을 각각 int로 바꾸면 됩니다. 결국 입력받기, 형 바꾸기, 출력하기 세 동작의 반복이라 6010이 이해되면 나머지는 같은 패턴이에요.
수행 전에 한 번씩 직접 쳐보시는 게 제일 빠릅니다. 복사해서 붙이면 그 자리에선 통과해도 수행 때 손이 안 움직여요.
채택된 답변쉽게 말하면, 파이썬에서 input() 함수는 키보드 입력값을 받아서, 문자열로 변환해주는 거에요.
근데, 키보드에서 숫자를 입력해도, 문자열로 바뀌어요.
키보드 입력 15 -> 파이썬 변수 문자열 "15" 이렇게요.
문제에서 원하는 것은 파이썬 변수 정수 15를 원하는데, 파이썬 변수 문자열 "15"를 정수 15로 변환해주어야겠죠.
변환을 하려면 int() 함수를 사용하면 되요.
소괄호 안의 변수를 정수로 바꿔주거든요.
int 는 integer의 약자로 정수를 의미해요. 일반적으로 프로그램에서 int는 정수를 의미해요.
그래서, int(input())의 의미는 키보드 입력값을 문자열로 받은 후, 그 문자열을 정수로 변환하라는 명령이에요.
그래서 이렇게 변환된 정수를 출력하면 되는데.
이해하기 쉽게, num이라는 변수에 할당해서 출력하면 좋아요.
num = int(input())
'='는 동일하다는 의미가 아니라, 오른쪽의 값을 왼쪽의 변수에 넣는다는 의미에요.
실제로, 변수는 컴퓨터의 메인 메모리(주 메모리, ram, dram 똑같은 말이에요)에 물리적으로 존재하고,
'='라는 명령에 의해서 물리적으로 값이 새겨져요.
그러다가, 프로그램이 끝나면, 해당 공간이 사라지죠.(정확히 말하면, 해당 공간을 가리키지 않음으로써, 비어있는 것처럼 취급하는 것인데 이건 좀 어려울 수 있어요. 컴퓨터의 구체적인 원리와 관련된 거라)
아무튼 이렇게 할당받은 num 변수를 출력하면 되는데,
모니터 화면에 출력하는 함수 따로 있는데, 그게 print()라는 함수에요.
그러면, print()에 전달된 변수가 모니터 화면에 출력이 되죠.
print(num)
종합하면,
num = int(input())
print(num)
이 정답 코드가 되요.
컴공을 할 것 아니면 전혀 몰라도 되는데,
첨언하자면, input()는 표준 입력(키보드 입력)을 받는 함수이고, print()는 표준 출력(모니터 출력)을 내보내는 함수에요.
저는 고등학생 때까지 정보 수업을 거의 안 듣고, 프로그래밍 지식도 안 알려주고 몰랐는데,
요즘은 필수 교과과정이 된 건지, 기초적인 프로그래밍 사고를 배우긴 하네요.