오랜만에 코딩을 그것도 이번에 처음배우는 파이썬으로 하려니깐 생각보다 막혔다.
백준사이트보니깐 단계별로 보기쉽게 나눠져있어서 첫번째 단계인 '입출력과 사칙연산' 총 11문제를 풀었는데 생각보다 시간이 걸렸다.
생각보다 구글링도 많이하고 그 과정에서 얻은것들이 좀 있다.
앞으로는 블로그에 백준 알고리즘을 풀면서 새로 알았던 사실들을 정리하는 글을 올리면 좋을 것 같다.
1. 역슬러쉬를 출력하려면 역슬러쉬를 두번 입력해야한다.
print("\\") // 출력 : \
2. 파이썬에서 사용자의 입력을 받는 함수는 input이다.
name = input("이름을 입력하세요. : ")
3. 사용자의 입력을 받고 각각 나눠주는 함수는 split()이다.
a,b = input().split() // 입력을 3 1로했다면 a = 3, b = 1이 된다.
아무래도 백준 문제에서의 input함수와 split함수를 사용하는 방법만 안다고하면 다른 상황에서 활용하지 못할 수 있다.
그래서 input함수와 split함수를 더 공부해봤다.
split()함수는 문자열을 일정한 규칙으로 잘라서 리스트로 만들어 주는 함수이다.
기본적인 사용형태는
문자열.split()
문자열.split('구분자')
문자열.split('구분자, 분활횟수)
문자열.split(sep='구분자', maxsplit=분활횟수)
이런식으로 사용이 가능하다.
백준 예제에서는 사용자의 입력을 input()함수로 받아 split()함수를 이용해줬다.
기본 split()함수를 이용하게되면 띄워쓰기와 엔터를 구분하여 문자열을 나눠주게된다. 그래서 3번의 예제에서 a=3, b=1이 된것이다.
그럼 a = "a,b,c,d,e,d,e,f"이고 각각의 알파벳으로 나눠주고 싶을 상황에서는 .split(',') or .split(sep=',')처럼 해주면 된다
a = "a,b,c,d,e,f"
print(a.split(',')) // 출력은 ['a', 'b', 'c', 'd', 'e', 'f'](문자열 리스트)가 된다.
print(a.split(sep=',')) // 위와 동일
그럼 구분자까지는 알아봤는데 분활횟수는 무엇이냐. 분활횟수는 해당 문자열을 구분자를 기준으로 몇개를 나누어줄지에 대한 부분이다.
a = "a,b,c,d,e,f"
print(a.split(',', 2)) // 출력 : ['a', 'b', 'c,d,e,f']
print(a.split(sep=',', maxsplit=2)) // 위와 동일
분활횟수를 2로 정해주게되면 길이가 3인 리스트가 만들어지게된다.
구분자를 기준으로 2번 나누고 나머지는 나눠지지않고 그대로 리스트로 만들어진 것을 볼 수 있다.
input()함수는 사용자의 입력을 문자열로 받는 함수이다.
따라서 사용자가 입력값을 다른 형태로 쓰고싶다면 강제로 타입을 지정해줘야한다.
a = input("숫자를 입력해주세요") // 입력: 3
print(a) // 출력: 3(문자열)
print(int(a)) // 출력: 3(정수형)
print(a*a) // error
이와같이 숫자를 입력받아야하는 상황에서는 번거롭지않기 위해 애초에 입력을 정수형으로 받는 방법도 있다.
a = int(input("숫자를 입력하세요. : ")) // 입력: 3
print(a) // 출력: 3
print(a*a) // 출력: 9
'파이썬 > 알고리즘 정리' 카테고리의 다른 글
알고리즘 정리 <최단 경로> (0) | 2022.02.11 |
---|---|
알고리즘 정리 <다이나믹 프로그래밍> (0) | 2022.02.07 |
알고리즘 정리 <이진 탐색> (0) | 2022.02.05 |
알고리즘 정리 <정렬> (0) | 2022.02.02 |