ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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 간단한 문제도 이렇게 공부할 것이 많다니 앞으로 가야할 산이 많다는 걸 느낀다.

    + 위 모든 정보는 잘못된 정보를 제공할 수 있으니, 공부에 참고만 부탁드립니다.

    + 틀린 부분 | 여기서 더 생각하면 좋을 부분도 댓글로 적어주시면 감사하겠습니다. 

Designed by Tistory.