한동안 java만 하다보니까...
파이썬 문법을 다 까먹어서 파이썬 문법 복습 겸 코테 기본기 문제를 풀어보려한다.
백준 기본기 문제부터 고고
1000번 문제
https://www.acmicpc.net/problem/1000
문제 | 두 정수 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
풀이 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
'코딩 테스트 준비' 카테고리의 다른 글
[Python] 백준 10986 문제 풀이, 나머지 합 구하기 (0) | 2022.12.12 |
---|---|
[Python] 백준 11659 문제 풀이, 구간 합, 입출력 속도 개선 (0) | 2022.12.05 |
[Python] 백준 11720, 1546 문제 풀이, 배열과 리스트 (1) | 2022.12.02 |
[Python] 백준 2798 문제 풀이, 브루트 포스 (1) | 2022.12.01 |
[Python] 프로그래머스 옹알이(1) 문제 풀이 (0) | 2022.11.30 |