-
[Python] 백준 : 입출력과 사칙연산 1,000번, A+B코딩테스트/백준 2024. 1. 21. 16:55
[문제 풀기 전 생각한 부분]
1. 사용자로 부터 A값과 B값을 받아야한다.
2. A와 B를 더해야 된다.
[my_code]
A = intput() # A값을 받는다. B = input() # B값을 받는다. print(int(A)+int(B)) # A+B값을 출력한다.
[문제점]
1. 문제에선 A와B 두개를 한번에 입력해서 더해야 한다. -> my_code에서는 한 개씩 입력해야 됨.
2. int를 정확히 왜 쓰는 지 모르겠다.
[문제점 해결]
Q1) A와 B 두 개를 한번에 입력하는 방법.
A1) split()함수를 이용한다.
Q2) int 쓰는 이유
A2) 사용자로부터 입력 받은 값은 문자열 상태임으로 int를 사용하여 정수로 변환해줘야 되기 때문이다.
A,B =input().split() # 입력받은 값을 공백을 기준으로 분리 print(int(A) + int(B)) # input().split()으로 입력 받은 값은 문자열 상태이므로 int를 사용하여 정수로 변환
[보너스]
split의 결과를 매번 int로 변환해주려니 귀찮습니다. 이때는 map 함수를 함께 사용하면 됩니다.
map에 int와 input().split()을 넣으면 split의 결과를 모두 int로 변환해줍니다.(실수로 변환할 때는 int대신 float를 넣습니다.)
a, b = map(int, input().split()) print(a + b)
[사용된 함수]
1. input
사용자가 어떤 값을 입력하게 하고, 그 값을 변수에 저장하는 것.
x =input() # x라는 변수안에 사용자가 특정 값을 입력 print("x = " + x) # ""와 변수 사이에 +를 넣어야 오류가 없음
10 # 사용자가 입력한 특정 값. x =10 # 출력값
2. split
- 문자열.split()
- 문자열.split('구분자')
- 문자열.split('구분자', 분할횟수)
- 문자열.split('seq=구분자', maxsplit=분할횟수)
2-1).spilt()의 경우 띄어쓰기로 문자열을 나눠줍니다.
A,B =input().split() # 입력받은 값을 공백을 기준으로 분리 print(int(A) + int(B)) # input().split()으로 입력 받은 값은 문자열 상태이므로 int를 사용하여 정수로 변환
저렇게 코드를 붙여주시고, 5 10을 입력했다 가정해요. (5스페이스바10)
그러면 5와10사이에 공백(띄워쓰기)가 있죠?
공백으로 문자열을 나누어 준겁니다. (공백으로 5와10을 구분함.)
2-2) .split('구분자') 의 경우 구분자 말만 어렵고 쉽게말해 뭐로 구분할래 입니다.
A,B =input().split(',') # 입력받은 값을 ,를 기준으로 분리 print(int(A) + int(B))
여기선 "나는 ,로 구분하겠다." 입니다. 5,10 을 입력하면 ,를 기준으로 5와10을 분리해준겁니다.
2-3) .split('구분자',분할횟수) 의 경우 (뭐로 구분할래? , 앞에서부터 분할횟수만큼 나누고 나머지는 나누지 않고 마지막항목으로 처리.)
number = input().split(',',2) # 변수이름 number선언 ,로 구분 / 분할횟수 2번 print(number)
#출력값 5,10,15,16,1 ['5', '10', '15,16,1']
5,10,15,16,1 를 , 로 구분하여 입력하였고
출력값은 ['5', '10', '15,16,1'] <- 앞에서부터 2번 분할하고 남은 값은 마지막으로 묶어 처리됨.
2-4) .split(seq='구분자', maxsplit=분할횟수) 2-3번과 동일한 역할을 합니다.
str = 'a,b,c,d,e,f,g' res = str.split(sep=',' , maxsplit=3) print(res)
# 출력값 ['a', 'b', 'c', 'd,e,f,g']
3. map
map(function, iterable)
● function : 각 요소에 적용할 함수.
● iterable : 함수를 적용할 데이터 집합.
map() 함수는 iterable의 각 요소에 대해 function 함수를 적용한 결과를 새로운 iterator로 반환합니다.
이때, function 함수는 각 요소를 인자로 받아서 처리하며, 함수의 반환값이 새로운 iterator의 각 요소가 됩니다.
4. print
-> 문장을 출력하기 위해 사용함.
[ 참고사이트]
https://ooyoung.tistory.com/13
https://dojang.io/mod/page/view.php?id=1220
https://dotiromoook.tistory.com/28
https://leftday.tistory.com/103
https://www.codingfactory.net/10085
[문제를 마치며]
A+B 간단한 문제도 이렇게 공부할 것이 많다니 앞으로 가야할 산이 많다는 걸 느낀다.
+ 위 모든 정보는 잘못된 정보를 제공할 수 있으니, 공부에 참고만 부탁드립니다.
+ 틀린 부분 | 여기서 더 생각하면 좋을 부분도 댓글로 적어주시면 감사하겠습니다.
'코딩테스트 > 백준' 카테고리의 다른 글
[Python] 백준 : 입출력과 사칙연산 2,588번, 곱 (1) 2024.01.22 [Python] 백준 : 입출력과 사칙연산 10,171번, 고양이 (0) 2024.01.22 [Python] 백준 : 입출력과 사칙연산 18,108번, 1998년생인 내가 태국에서는 2541년생?! (0) 2024.01.21 [Python] 백준 : 입출력과 사칙연산 10,926번, ??! (0) 2024.01.21 [Python] 백준 : 입출력과 사칙연산 10,869번, 사칙연산 (0) 2024.01.21