ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준01
    개발/Python 2023. 1. 27. 13:19

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

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

    input( ) 함수는 사용자로부터 문자열을 입력받을 때 사용한다

    입력받는 값은 랜덤으로 받아 어떤 값이 입력돼도 답이 도출되도록 코드를 작성해야 한다

     

    split( ) 함수는 입력받는 문자를 나눌 때 사용하는 함수다

    문제에는 두 개의 숫자 사이에는 공백으로 구분되어 있다. 이런 경우에는 공백을 기준으로 숫자를 나누면 된다.

     

    정리하면 input( ). split( )은 입력받는 문자가 아직 정해지지 않았으나 어떤 값이 들어와도 공백을 기준으로 나눈다는 의미

     

    두 개의 수를 + 연산자로 더할려면 입력받은 두 개의 문자를 숫자로 변환하는 과정이 필요하다. 이때 int( ) 함수를 사용하여 숫자 형태의 두 개의 문자를 숫자로 변형 시킨다

     

    문제 풀이_01 - 내포함수

    a, b = [int(x) for x in input().split()] 
    print(a+b)

    리스트 내포함수를 이용하여 리스트 내부에서 인풋을 모두 받아버린다.

     

    - input()을 받고 공백을 기준으로 split하여 ["1 2 "] -> ["1", "2"]

    - 나온 x를 int(x) 로 변환해준다. [1,2]

    - 이때 각 리스트에 값 순서대로 a, b, c, d에 들어가게 된다. [a = 1, b = 2]

     

     * 내포함수: for문과 if문을 한 라인에 작성하여 코드를 직관적으로 만들고 실행속도를 높혀주는 기법

    #example
    meter_list = [3, 7, 9, 10] 
    centi_meter_list = [100*i for i in meter_list] 
    print(centi_meter_list) 
    
    [300, 700, 900, 1000]

     

    문제 풀이_02 - map함수

    a, b,= map(int, input().split())
    print(a+b)

    input() 을 통해 표준 입력을 받는다. (1 2)

    split를 통해 공백을 제거하여준다. ["1", "2"]

    이제 int를 통해 형변환을 해준다. [1, 2]

    map 자료구조에 해당 값을 넣어준다

    이때 순서대로 a, bmap의 값을 넣어준다

     

     *map함수: map은 리스트의 요소를 지정된 함수로 처리해주는 함수

    #example
    # 리스트에 값을 하나씩 더해서 새로운 리스트를 만드는 작업
    myList = [1, 2, 3, 4, 5]
    
    # for 반복문 이용
    result1 = []
    for val in myList:
        result1.append(val + 1)
    
    print(f'result1 : {result1}')
    
    
    # map 함수 이용
    def add_one(n):
        return n + 1
    
    
    result2 = list(map(add_one, myList))  # map반환을 list 로 변환
    print(f'result2 : {result2}')

    10926번

    #문제풀이_01
    str = input()
    print(str, end='')
    print("??!")
    
    #문제풀이_02
    print(input() + "??!")

    sep=" "

    이 옵션을 이용하게 되면 print문의 출력문들 사이에 해당하는 내용을 넣을 수 있다 

    기본 값으로는 공백이 들어가 있으며 이를 사용해 원하는 문자를 입력할 수 있다

     

    end=" "

    print 문을 이용해 출력을 완료한 뒤의 내용을 수정할 수 있다 

    기본 값으로는 개행(\n)이 들어가 있으며 이를 사용해 개행을 없애거나 원하는 문자를 입력할 수 있다

     

    print("바나나","사과","딸기",end = "**end 입니다** \n")
    print("자두","포도","수박",sep = "**sep입니다**")
    
    #바나나 사과 딸기**end 입니다**
    #자두**sep입니다**포도**sep입니다**수박

     

     

    3003번

    x = [1, 1, 2, 2, 2, 8]
    y = list(map(int, input().split()))
    
    for i in range(6):
        print(x[i] - y[i], end=" ")

    1. x값의 기본 체스 각각의 피스 개수를 넣어주었다

    2. y값의 리스트형식의 정수 값이 들어오도록 만들어주었다

    3. for문을 통해 print(x[ i ] - y[ i ]) 내용이 0~5까지 반복하게 만들었다 

     

    10430번

    A,B,C = map(int,input().split())
    
    print((A+B)%C, ((A%C)+(B%C))%C, (A*B)%C, ((A%C)*(B%C))%C, sep='\n')

    1. 1000번 문제에서 변수가 하나 더 생긴 문제다

    2. map함수를 이용해 A,B,C를 int정수값으로 변환시켜주었다

    2. sep='\n'을 이용해 줄바꿈을 해주었다

    2588번

    A = int(input()) 
    B = input()       
    
    AxB2 = A * int(B[2])
    AxB1 = A * int(B[1])
    AxB0 = A * int(B[0])
    AxB = A * int(B)
    
    print(AxB2, AxB1, AxB0, AxB, sep='\n')

    A는 int함수를 이용해서 바로 정수로 변환하였고 두 번째 입력받는 숫자 B는 문자열 그대로 두었다. 이렇게 두 번째 입력받은 숫자 B를 문자열로 그대로 둔 이유는 이 숫자를 한 자리씩 떼어내야 하기 때문이다. 문자열은 split 함수를 이용하든 인덱스로 문자의 위치를 이용하든 하나씩 분리를 할 수가 있지만 숫자는 그렇게 할 수가 없기 때문이다. 

     

    A와 B의 각 자리의 수를 곱한 값이다. 그래서 두 번째 입력받은 B의 각 자리를 인덱스 기호를 이용하여 하나씩 불러내고 그 불려진 문자를 int 함수를 이용해서 정수로 변환하였다

     

    A와 B의 각 자릿수를 곱한 값을 변수에 선언하였다.

     

    print 함수를 이용해서 출력할 값을 쉼표로 구분해서 입력했고 값 하나를 출력하고 줄 넘김이 될 수 있도록 sep=파라미터에 '\n' 이스케이프 문자를 입력했다

     

     

    '개발 > Python' 카테고리의 다른 글

    백준06  (0) 2023.02.06
    백준05  (0) 2023.02.01
    백준04  (0) 2023.01.31
    백준03  (0) 2023.01.29
    백준02  (0) 2023.01.29
Designed by Tistory.