split()과 split(" ")의 차이 s = "Hello World Everyone" print(s.split()) # ['Hello', 'World', 'Everyone'] print(s.split(' ')) # ['Hello', 'World', '', '', 'Everyone'] 프로그래머스 이상한 문자 만들기를 풀다가 신기한 것을 발견했다. split()을 사용하면 길이에 상관없이 공백을 모두 제거하여 분리하고, split(' ')을 사용하면 공백 한 개마다 분리한다고 한다. 문제 조건에서 공백이라는 것이 개수에 상관없는 공백인지, 공백 한 개(또는 특정 개수) 인지 구분하여 사용하는 것이 필요하다는데, 말장난 같기는 하지만 알아둬서 나쁠 건 없을 것 같다. 어쨌든 요구사항에 맞춰 구현하는 것..
PYTHON
제목이 곧 내용의 전부인데, 더 자세한 설명이 필요할 수도 있을 것 같아서 도움 받은 블로그와 공식 문서를 첨부하였음 참고문서 https://blog.hwahae.co.kr/all/tech/6662 Python3.6 부터는 Dict가 순서를 기억한다. – 화해 블로그 | 기술 블로그 Python3.6 화해 개발팀에서는 닥블(닥치고 블로그)이라는 소모임을 운영하고 있습니다. 최근 닥블 활동으로 화해팀의 백엔드 플랫폼에서 사용 중인 Python 딕셔너리에 대해 새로 알게 된 내용을 정 blog-wp.hwahae.co.kr https://docs.python.org/ko/3/library/stdtypes.html#dict Built-in Types The following sections describe th..
bisect 이거 없어도 괜찮을 거 같다는 고집이 있었기 때문에 따로 사용하고 있지는 않았는데, 생각보다 편리한 거 같다. 새로운 것에 대한 거부감을 줄이자. bisect_left, bisect_right는 bisect 라이브러리에서 요긴하게 쓰이는 함수로, 시간복잡도는 O(logN)이라고 한다. 이 함수는 이진탐색을 통해 리스트에서 원하는 값의 인덱스를 찾아준다고 한다. 아래 코드를 통해서 이해해보자. from bisect import bisect_left, bisect_right # bisect 라이브러리에서 가져온다 list = [1,1,1,1,1,2,3,4,5,6,6,6,8,9,9,9] # 반복되는 수가 있는 정렬된 리스트 list_2 = [42,5,6,8,1,57,98,4] # 무작위로 있는 리..
return 함수에서 return은 크게 두 가지 역할을 한다. 1. 결과값 반환 return은 결과값을 돌려주는 명령어로, 함수에서는 결과값을 return으로만 받을 수 있다. 만약 결과값이 없다면 None이 출력된다. def plus_one(a): return a+1 print(plus_one(5)) # 6 def plus_two(a): a+2 print(plus_one(5)) # None 2. 함수를 빠져나가는 기능 return은 함수를 종료시키고 싶을 때 사용할 수 있다. def hello(a): if a == "fxxking": return print(f'Hello {a} World!') hello('happy') # Hello happy World! hello('fxxking') # 실행되지 ..
None None은 값이 없다는 뜻을 가진 데이터이다. 존재하지 않음을 알려주는 값이라고 생각하면 편할 듯. None이 반환되는 대표적인 경우 1. 함수가 반환값을 가지고 있지 않을 때 def plus(a,b): a+b print(1,2) # None 2. 무언가를 검색했을 때 해당 값을 찾을 수 없는 경우

진수 변환기 2진수, 8진수, 16진수 등으로 변환해주는 파이썬 내장함수가 있긴 하지만, 7진수나 24진수 등 여러 진수로 바꿀 필요성이 있을 때 사용하면 좋을 코드다. n진수를 만드는 원리만 알면 코드로 변환하기는 쉽다. n진수 만들기 2진수를 예로 들자. 어떤 수를 2로 더 이상 나눠지지 않을 때까지 (몫이 0이 될 때까지) 나눈다. 그 후 아래에서부터 나머지를 쭉 쓰면 2진수 변환이 끝난다. 이는 n이 모든 자연수일 때 성립한다. 이를 코드로 구현해보자. 진수변환기 파이썬 코드 def jinsu(n,m): damn = [] while True: if n//m == 0: damn.append(n) break damn.append(n%m) n //= m damn.reverse() return int("..
Set set(집합 자료형)의 특징은 크게 2개가 있다. 1. 중복을 허용하지 않는다. 2. 순서가 없다. 중복을 허용하지 않아서 중복을 제거하는 용도로 사용할 수 있다. 또 순서가 없기 때문에 인덱싱과 슬라이싱을 지원하지 않는다. 중복과 순서에 대한 특성을 사용하지 않을 때는 list보다는 set 자료형을 사용하는 것이 시간 절약에 좋다. 리스트는 인덱스 0부터 n까지 일일이 검사를 해야하므로 시간복잡도가 O(n) 이고, set은 O(1)이라고 한다. => set 자료형을 사용하면 탐색시간을 줄여준다. 백준 1920번 문제가 대표적이다. a = int(input()) b = set(map(int, input().split())) c = int(input()) d = list(map(int, input(..
remove() remove는 특정 색인이 아닌 첫번째 일치하는 값을 제거한다. lst = [1,2,3,4,5,1] lst.remove(1) print(lst) #[2,3,4,5,1] del [] del은 특정 인덱스에서 항목을 제거한다. lst = [1,2,3,4,5,1] del lst [2] print(lst) #[1,2,4,5,1] pop() pop은 특정 인덱스에서 항목을 제거하고 그 값을 반환한다. lst = [1,2,3,4,5,1] print(lst.pop(-1)) # 1, remove는 none 반환 del은 프린트 x print(lst) #[1,2,3,4,5]
sort, sorted 우선 sort와 sorted는 안정정렬이라고 한다. 이는 https://codingdog.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%8B%A4%EC%A4%91%EC%A0%95%EB%A0%AC-sort%EA%B0%80-stable-%ED%95%98%EB%8B%A4%EB%8A%94-%EA%B2%83%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%A9%EC%8B%9C%EB%8B%A4 에 잘 정리되어 있으니 참고하자. sort, sorted 속성 sort와 sorted에는 속성을 줄 수 있다. reverse 속성과 key 속성인데, reverse 속성의 기본값은 false이다. ..
리스트 위치 바꾸기 list = [1,2,3,4,5]에서 2와 3의 위치를 바꾸고 싶다. 이럴 때 list[2] = list[1] 이런 식으로 바꾸면 그 다음 단계에서 막히게 된다. 이를 해결할 수 있는 방법이 list[1], list[2] = list[2], list[1] 이다. list[1]에 list[2]의 값이 할당되고 list[2]에 list[1]의 값이 할당된다. 아래는 이를 이용한 문제 풀이이다. a, b = map(int, input().split()) l = [i for i in range(1, a+1)] for _ in range(b): x, y = map(int, input().split()) l[x-1], l[y-1] = l[y-1], l[x-1] print(*l)