본문 바로가기
코딩 테스트 준비

[Python] 백준 1000 문제 풀이, split(), input() 함수 활용

by 몰라몰라개복치 2022. 11. 29.

한동안 java만 하다보니까...

파이썬 문법을 다 까먹어서 파이썬 문법 복습 겸 코테 기본기 문제를 풀어보려한다.

 

백준 기본기 문제부터 고고

 

 

1000번 문제

https://www.acmicpc.net/problem/1000

 

1000번: A+B

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

www.acmicpc.net

 

 

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

 

입력 | 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

 

출력 | 첫째 줄에 A+B를 출력한다.

 

 

 

 

풀이 1) 

python에서는 input() 함수를 통해 어떠한 변수에 값을 입력받을 수 있다.

 

그렇다면 

input()을 두 번 받아서 합하면 되지 않나? 생각할 수도 있지만

입력값을 보면 A와 B가 띄어쓰기로 분리되어 있는 것을 확인할 수 있다

 

그렇다면 input()으로 입력받고 split()으로 분리해준 뒤 더해야 되는 문제구나 알 수 있고

 

python에서 split()을 사용하여 특정 문자를 기준으로 문자열을 분리할 수 있다.

  • split()는 whitespace(공백)를 기준으로 문자열을 나눈다.
  • split(',')는 ,를 기준으로 문자열을 나눈다. 즉 괄호에 들어가 있는 문자를 기준으로 문자열을 나누는 것이다.
  • split(',' ,1)는 ,를 기준으로 문자열을 나누나 최대 1회까지만 문자열을 나눈다. 즉 첫 번째 인자는 문자열을 나누는 기준, 두 번째 인자는 최대 나눌 횟수를 뜻한다.

 

다시 돌아와서 문제를 풀어보자면

str = input()를 통해 문자열을 받아주고

받은 문자열을 x = str.split()를 통해 공백을 기준으로 문자열을 나눠주면

int(x[0])는 A의 값 int(x[1])는 B의 값이 될 것이다. (int를 감싸줘야 되는 이유는 현재 x가 문자열을 나눴으므로 문자열 list 형식이기 때문이다)

 

int(x[0])+int(x[1])을 print()로 출력해주면 완료

 

python의 출력함수는 print()이다. 

 

<정답 코드>

str = input()
x = str.split()
print(int(x[0])+int(x[1]))

 

 

 

 

풀이 2)

다른 사람 풀이를 보니까...

input()이랑 split()을 같이 쓸 수도 있었음(나는 몰랐음)

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

코드 설명은 생략하고 이런 식으로 바로 나눠서 값을 낼 수도 있었다. 긋

 

 

 

 

찾아보니까 개념에 있는 내용이었다. 참고하면 좋을 듯

역시 사람은 기본기를 잘 다져야 된다...

https://dojang.io/mod/page/view.php?id=2179 

 

파이썬 코딩 도장: 6.4 입력 값을 변수 두 개에 저장하기

지금까지 input 한 번에 값 하나만 입력받았습니다. 그럼 input 한 번에 값을 여러 개 입력받으려면 어떻게 해야 할까요? 이때는 input에서 split을 사용한 변수 여러 개에 저장해주면 됩니다(각 변수

dojang.io

 

 

 

 

풀이 3)

python 문법 기초부터 다시 공부하다보니까 새로운 방법도 보여서 기록

python에서 map() 함수는 map(function, iterable)의 형식으로 사용할 수 있다. 

  • map(적용시킬 함수, 적용할 값들) 형식이라고 생각하면 됨
  • ex) A, B = (int, input().split())을 보면 input().split()에서 나온 값을 int로 바꿔준 채로 A, B에 삽입한다는 것이다.

map()에 대해서 다음에 더 자세히 정리할 예정

 

따라서 map()을 사용해보면

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

제일 간단한 듯 굿

 

참고: https://dojang.io/mod/page/view.php?id=2179 

 

파이썬 코딩 도장: 6.4 입력 값을 변수 두 개에 저장하기

지금까지 input 한 번에 값 하나만 입력받았습니다. 그럼 input 한 번에 값을 여러 개 입력받으려면 어떻게 해야 할까요? 이때는 input에서 split을 사용한 변수 여러 개에 저장해주면 됩니다(각 변수

dojang.io