ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2.(2) 코테용 데이터 입력 스킬 (input().split(), map() 등)
    카테고리 없음 2021. 10. 22. 11:50

    1. input()

    str = input() num = int(input())

    기본적인 입력 방법으로, input()자체는 문자열을 입력받는 것으로 처리됩니다.
    그렇기 때문에 int(input())을 해주어야 숫자형 입력이 가능해집니다.

    • num변수에 저장된 숫자, 예를 들어 1993이란 숫자를 각각 하나씩 쪼개고 싶을 땐,

    num = list(str(num)) print(num)

    2. input().split()

    split() 내장함수는 문자열을 특정 구분자로 나누고 싶을 때 사용합니다.
    가령 split(',')은 쉼표로 구분된 문자열을 나눌 때 사용하면 됩니다다.
    split()은 공백으로 되어있으니 띄어쓰기를 구분할 때 사용됩니다.

    str이라는 변수에 여러 입력값을 저장합니다.

    str = input().split() >>> ['you','are','welcome']

    예를들어, 'you are welcome'이란 문자열에 .split()을 적용하면 위와 같이 출력됩니다.
    당연한 소리지만 str[0]은 'you'가 됩니다.

    3. map()

    위의 input().split()은 하나의 변수에 리스트의 형태로 저장됩니다.
    여러 변수를 생성하여 각각의 값을 할당하고 싶을 땐 map()함수를 이용합니다.

    주의할 점은 map()함수는 최소한 2개의 인자를 괄호안에 써주어야하는데,

    map(int, input().split()) # 숫자형을 입력받겠다. map(str, input().split()) # 문자형을 입력받겠다.

    위와 같은 형식으로 작성해야 합니다. 그렇지 않으면 에러납니다.

    a, b, c = map(input().split() print(a,b,c) >>> 1, 2, 3

    4. sys.stdin.readline()

    대량의 데이터를 반복적으로 입력받아야 할 때, input()대신 sys.stdin.readline()을 이용하면 성능(속도)이 향상됩니다. 주로 백준 알고리즘 문제를 풀 때 유용합니다.자바에서 Scanner보다 BufferedReader가 빠른것과 같은 맥락입니다.

    • import sys 를 먼저 선언해주어야 합니다.

    import sys read = sys.stdin.readline() print(read)

    하나의 변수(read)에 str형태로 저장합니다.

    import sys read2 = sys.stdin.readline().split() print(read2)

    하나의 변수(read2)에 list형태로 저장합니다.

    • 각각의 리스트 원소를 저장하고 싶을 땐, map()함수를 사용합니다.

    import sys year, month, date = map(int, sys.stdin.readline().split()) print(year, month, date)

    5. 배열

    백준 문제를 풀 때 배열을 입력해야하는 상황이 많습니다.

    • 1차원 배열

    a = [0 for _ in range(5)] print(a)

    리스트 내에서 for문을 5번 반복시켜 0을 5번 만들어 1차원 배열을 만듭니다.

    • 2차원 배열

    m, n = 5,4 a = [[0]*m for _ in range(n)] print(a)

    위와 같은 원리입니다.
    리스트 내에서 [0] * m 에 대해서 for문을 n번 반복합니다.
    여기선 for문의 반복횟수가 행(row)이 되고 m이 column의 수가 되어, n x m 형태의 2차원 배열이 만들어집니다.

    6. for문을 이용한 N번 입력

    answer = [int(input()) for _ in range(N)]

    N은 사용자가 임의로 지정할 수 있습니다.
    N이 5이면, 원소가 다섯개인 리스트를 생성할 수 있습니다.

Designed by Tistory.