목록파이썬 (72)
차밍이
효율적인 해킹 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 5 초 256 MB 41545 7680 5077 19.779% 문제 해커 김지민은 잘 알려진 어느 회사를 해킹하려고 한다. 이 회사는 N개의 컴퓨터로 이루어져 있다. 김지민은 귀찮기 때문에, 한 번의 해킹으로 여러 개의 컴퓨터를 해킹 할 수 있는 컴퓨터를 해킹하려고 한다. 이 회사의 컴퓨터는 신뢰하는 관계와, 신뢰하지 않는 관계로 이루어져 있는데, A가 B를 신뢰하는 경우에는 B를 해킹하면, A도 해킹할 수 있다는 소리다. 이 회사의 컴퓨터의 신뢰하는 관계가 주어졌을 때, 한 번에 가장 많은 컴퓨터를 해킹할 수 있는 컴퓨터의 번호를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에, N과 M이 들어온다. N은 10,000보다 작거나 같은..
목차 들어가기 Pandas DataFrame에서 apply 매소드를 사용해서 함수를 적용한다. 보통 단일 인자 함수를 사용하는데, 복수 인자를 넣을 수도 있다. 복수 인자를 사용하는 방식에는 두 가지가 있다. 함수가 복수 인자를 받는 경우 복수의 Column 의 데이터를 함수에 넘겨주는 경우 두 가지 방법에 대해서 알아보고 적절하게 사용하자. 복수 인자 사용하는 경우 import pandas as pd df = pd.DataFrame({"A": [10, 20, 30], "B": [-10, -20, -30]}) def subtractAndMultiply(x, y, z): return (x - y) * z df['A'].apply(subtractAndMultiply, args=(-10, 2)) df['A']..
목차 들어가며 jupyter notebook에서 셀 단위로 속도를 확인하는 방법을 알아보자. 속도를 비교해볼 함수 리스트의 원소들을 모두 곱하는 함수로 아래와 같다. def multiplyAll_v1(s:list) -> int: ans = 1 for n in s: ans *= n return ans from functools import reduce def multiplyAll_v2(s:list) -> int: return eval("*".join([str(n) for n in s])) def multiplyAll_v3(s:list) -> int: return reduce(lambda x, y: x * y, s) 해당 함수나 reduce, eval 함수에 대해 더 알고 싶다면 [Python] 리스트 요소..
목차 eval() 과 exec()는 무엇인가? eval 과 exec 함수는 파이썬의 내장 함수이다. 문자열로 적어진 수식 혹은 코드를 파이썬 코드로 실행할 때 사용된다. eval : 문자열로 구성된 식을 처리한다. exec : 문자열로 구선된 코드를 컴파일하여 수행한다. eval 함수 문자열 식을 수행한다 식만 처리하므로 변수 선언 및 할당과 같은 것은 할 수 없다. eval("3 * 4 * 5 * 6") >>> 360 코드 내에 변수들의 값 또한 잘 받아서 수행한다. a = 10 eval("a * 3 * 4 * 5 * 6") # 문자열 식의 a 는 파이썬의 a 변수와 동일 >>> 3600 eval은 수행한 후 결과 또한 반환한다. 위의 수식 결과를 return 하는 것을 볼 수 있음 exec 함수 문자..
목차 getattr() 속성 값을 가져오는 함수 class Animal: leg = 4 size = "Big" def enemy(self): print("컹컹컹!") def friend(self): print("왕왕조왕") animal = Animal() animal.leg >>> 4 getattr(animal, "leg") >>> 4 geattr에 대해서는 더 자세하게 작성한 게시글을 참고하면 좋습니다. [Python] getattr() 를 사용해서 간결하게 코드 작성하기, 예시 및 장점 [Python] getattr() 를 사용해서 간결하게 코드 작성하기, 예시 및 장점 목차 getattr() 구문 getattr(object, attribute, default) [매개변수] object : 필수. 객..
목차 reduce 함수란? reduce 함수는 반복 가능한 객체이다. 각 요소들을 이전 연산 결과들과 누적하여 반환한다. functools 모듈에서 불러와야 한다. from functools import reduce reduce 예제 from functools import reduce dataList = [1, 2, 3, 4, 5] def sum(a, b): return a + b reduce(sum, dataList) >>> 15 reduce 실행 과정 sum(sum(sum(sum(1, 2), 3), 4), 5) => ((((1 + 2) + 3) + 4) +5) => 15 시각적으로 살펴보면 다음과 같다. Reference https://technote.kr/344 https://heytech.tist..
목차 getattr() 구문 getattr(object, attribute, default) [매개변수] object : 필수. 객체. attribute : 필수. 값을 얻을 속성명. default : 선택. 속성이 없는 경우 반환할 값. getattr() 함수의 정의 gattattr(object, name) 으로 object안의 메소드(name)을 호출한다. object 내부의 name이라는 멤버를 반환한다. 사실 정의만 보면 잘 이해가 되지 않는다. 조금 더 쉽게 애기하자면 문자열로 객체의 속성값이나 메소드를 사용할 수 있다. Example 예제를 보면 쉽게 이해할 수 있다. class Animal: leg = 4 size = "Big" def enemy(self): print("컹컹컹!") def ..
목차 파일명 한 번에 바꾸기 os 모듈의 rename 메소드를 사용해서 바꿀 수 있다. 폴더의 파일 명 앞의 conved_를 모두 삭제한 이름으로 바꾸려고 합니다. 기존 파일 확인하기 파이썬에서 기존 파일 위치 경로를 통해 해당 파일 이름들을 불러와 확인합니다. import os path = "./Documents/test" file_list = os.listdir(path) file_list 파일 이름 수정 및 저장 for file in file_list: # 전체 파일 리스트에 대해서 수행 src = os.path.join(path, file) # 기존 파일 경로 dst_name = file.replace("conved_", "") # 이름 수정 dst = os.path.join(path, dst_n..
목차 파일명 가져오기 os.listdir을 사용해서 원하는 파일의 파일 명을 가져옵니다. import os path = "./Documents/test" file_list = os.listdir(path) file_list 파일명에서 확장자 구분하기 file = file_list[0] os.path.splitext(file) >>> ('2c9fb', '.log') 2c9fb.log >>> 2c9fb 와 .log로 나누어진 것을 확인할 수 있습니다. 파일 이름 부분과 확장자로 나누어지므로 각자 할당 받아서 사용할 수 있습니다. ex) 아래 name, ext = os.path(splitext(file)) 확장자 명에 . 을 포함하고 있으므로 확장자만 사용하려면 ext[1:] 과 같은 방법으로 사용하면 됩니다..
Y축 반전 뒤집기 기본 수식 작성 import plotly.graph_objects as go import numpy as np x = np.arange(-5, 6) y = x**3 fig = go.Figure(data=go.Scatter(x=x, y=y)) fig.show() 축 반전 fig.update_layout( yaxis = dict(autorange='reversed'), ) update_layout 에서 자동 범위 설정을 reversed 로 설정하면 반전이 수행됩니다. x 축은 xaxis로 설정해서 하면 동일하게 적용할 수 있습니다. 전체 소스 코드 import plotly.graph_objects as go import numpy as np x = np.arange(-5, 6) y = x*..