목록Languages./Python (5)
하루한줄 코딩일기
정규표현식 re.sub() 파이썬에서 정규 표현식을 활용할 땐 re 모듈을 사용한다. 이 중 sub 메소드는 정규식을 이용해 문자열을 치환하는 방법이다. 형식은 다음과 같다. re.sub(pattern, replace, text) : text 중 pattern에 해당하는 부분을 replace로 대체한다. 다양한 정규식 패턴 표현 [출처] 다양한 정규식 패턴 표현 활용 예시 같은 문제를 정규식을 사용하지 않고(위), 그리고 사용하고(아래) 작성한 코드이다. 정규식을 활용한 풀이가 훨씬 간단하고 가독성이 좋다는 것을 확인할 수 있다. ... 문제보기 def solution(new_id): answer = "" #1단계 new_id = new_id.lower() #2단계 for n in new_id: if n..
순열과 조합 구현하기 파이썬에서 하나의 리스트 내에서 조합할 수 있는 모든 경우의 수를 구하기 위해선 itertools 라이브러리의 permutations, combinations 함수를 활용할 수 있다. 순열(permutations) 순열(nPr)은 서로 다른 n개 중 r개를 중복 없이 뽑는 경우의 수를 말하며, 순서를 고려한다는 점에서 조합과 다르다. 즉, 순열에서는 (2,3)과 (3,2)를 다른 경우로 본다. 파이썬에서 리스트 arr이 주어질 때, 순서를 고려하여 2개의 요소를 뽑아 만들 수 있는 모든 조합의 경우는 다음과 같이 구할 수 있다. 이때, permutations() 함수는 기본적으로 itertools.permutations 타입을 반환하기 때문에 리스트로 변환하여 출력한다. [참고] i..
📃 'dict_values' object is not subscriptable 에러 해당 에러가 발생한 코드의 일부다. collections.Counter의 values() 중 특정 인덱스에 접근하고자 했을 때 오류가 발생했다. for i in range(len(id_list)): if id_list[i] in collections.Counter(result).keys(): id_list[i] = collections.Counter(result).values()[i]#오류 발생 지점 Traceback (most recent call last): File "C:\Users\14Z980-GA50K\Desktop\AA\AA\AA.py", line 38, in id_list[i] = collections.Cou..
input()과 sys.stdin.readline()의 차이 백준 알고리즘 문제들을 풀다 보면 sys.stdin.readline()을 사용해 자료를 입력받을 경우 input() 함수를 사용했을 때보다 처리 속도가 향상되는 것을 볼 수 있다. 또한, 시간 초과로 인한 오답이 발생하는 경우 input() 함수 대신 readline()을 사용하는 것 만으로 문제가 해결되는 경우가 많다. 아래 사진에서 볼 수 있듯이 두 방식에는 속도 차이가 확연히 나타는데, 그렇다면 이 두 입력받기 방식의 차이점은 무엇이고 속도 차이가 발생하는 이유는 무엇일까? [출처] 입력 속도 비교 input() 파라미터로 프롬프트 메시지를 받을 수 있어, 입력받기 전 프롬프트 메시지를 출력함 캐릭터 단위로 읽어들여 속도가 느림 개행문자(..
📃 'int' object is not callable 에러 자릿수의 합 문제를 해결하던 중 작은 오류가 발생했다. digit_sum() 함수를 호출해 그 결과값을 'sum' 이라는 변수에 저장하고자 하는 과정에서 문제가 발생 한 것. def digit_sum(x): return sum(list(map(int,str(x)))) N = int(input()) arr = list(map(int, input().split())) max = -9999999 answer = 0 for i in arr: sum = digit_sum(i)#오류 발생 지점 if sum>max: max = sum answer = i print(answer) Traceback (most recent call last): File "C:\..