저는 코딩테스트를 주로 파이썬으로 진행합니다.
예전에 고등학생 때는.. C언어를 사용하였지만 이제는 파이썬이 손에 익어버렸습니다.
그만큼 문법도 쉽고 구현도 쉬운 파이썬의 다양한 문자열 입력 방법과 변수, 배열에 저장하는 방법을 알려드리겠습니다.
* map (자료형, 매핑할 값)
* split() : 괄호 안의 값을 기준으로 값을 나눠줌, 빈칸은 한칸 띄어쓰기(' ')와 동일
- 변수 여러개 한줄에 입력 받기
map함수를 사용하면 for문을 쓰지 않고 한줄에 여러 개의 정수를 입력받을 수 있습니다.
line단위로 입력이 나뉘기 때문에 엔터에 주의해야합니다.
split()을 사용하여 띄어쓰기를 기준으로 변수를 나눕니다.
* 참고 : int로 자료형을 바꿔주지 않으면 문자로 취급됩니다.
x, y, k, t = map(int,input().split())
print(x,y,k,t)
"""
입력
1 2 3 4
출력
1 2 3 4
"""
strA, strB = input.split() # 문자 취급
print(strA, strB)
"""
입력
str1 str2
출력
str1 str2
"""
- 1차원 배열 입력 받기
마찬가지로 map함수를 사용하면 코드를 간결하게 할 수 있습니다.
arr = list(map(int,input().split()))
print (arr)
"""
입력
1 2 3 4 5
출력
[1, 2, 3, 4, 5]
"""
- 2차원 배열 입력 받기
n은 보통 입력을 받거나 len() 함수를 사용해서 입력의 line의 수만큼 반복하면 됩니다.
2차원 배열은 1차원 배열 입력 받기에서 for 문을 추가해주면 됩니다.
[] 괄호 안에 넣어주어야지 n번 만큼 반복을 하면서 한 줄씩 입력을 받게 됩니다.
n = int(input())
arr = [list(map(int,input().split())) for _ in range(n)]
print(arr)
"""
입력
5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
출력
[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25]]
"""
- 띄어쓰기 없는 1차원 배열 입력 받기
띄어쓰기가 없이 들어오는 경우 input을 list로 변환을 시켜주면 됩니다.
정수형으로 넣어주고 싶다면 map을 활용하여 아래 코드와 같이 변경해주면 됩니다.
arr = list(input())
print(arr)
"""
입력
12345
출력
['1', '2', '3', '4', '5']
---------------------------
"""
arr = list(map(int,input()))
print(arr)
"""
입력
12345
출력
[1, 2, 3, 4, 5]
"""
- 띄어쓰기 없는 2차원 배열 입력 받기
위의 띄어쓰기 없는 1차원 배열 받기에서 for문을 추가해주어 여러 줄의 문자열을 배열로 만들 수 있습니다.
n = int(input())
arr = [input() for _ in range(n)]
print(arr)
"""
입력
5
UDLRU
DUDDL
LRUDD
URLUU
DDUDU
출력
['UDLRU', 'DUDDL', 'LRUDD', 'URLUU', 'DDUDU']
"""
2차원 형태로 부름이 가능하지만 정수형으로 받는 경우나 완전한 칸칸이 분리가 필요하다면
n = int(input())
arr = [list(map(int,input())) for _ in range(n)]
print(arr)
"""
입력
5
12345
54321
32145
51315
52142
출력
[[1, 2, 3, 4, 5], [5, 4, 3, 2, 1], [3, 2, 1, 4, 5], [5, 1, 3, 1, 5], [5, 2, 1, 4, 2]]
"""
이렇게 분리도 가능합니다.
(정수가 아닌 문자로 쓰고 싶다면 map()을 제거하면 됩니다.)
코딩테스트를 하다 보면 다양한 입력방식이 주어지게 되는데 위의 나오는 list,map,split의 활용을 익혀 두면 간결하게 입력을 받을 수 있습니다.
혹시 위의 내용말고 또 다른 입력 유형이 있다면 댓글로 남겨주시면 추가하도록 하겠습니다!
'알고리즘' 카테고리의 다른 글
[백준] 1927번: 최소 힙 (0) | 2022.10.18 |
---|---|
[백준] 11399번: ATM (0) | 2022.10.18 |
[백준] 14499번: 주사위 굴리기 (0) | 2022.04.30 |
[백준] 3190번: 뱀 (0) | 2022.04.30 |
[백준] 13460: 구슬 탈출 2 (0) | 2022.04.29 |