전체 702

aliasing시 요소 수정과 재정의의 차이

리스트를 aliasing(b=t)했을 때 1. 리스트 자체를 재정의 하면 수정이 적용되지 않지만 2. 요소를 수정하면 수정이 적용된다 print("[리스트를 재정의]") b=[] t=[1,2,3] b=t print("전") print(b) t=[5,6,7] print("후") print(b) print() print("리스트 요소 수정") b=[] t=[1,2,3] b=t print("전") print(b) t[0]=5 t[1]=6 t[2]=7 print("후") print(b) 더보기 [리스트를 재정의] 전 [1, 2, 3] 후 [1, 2, 3] 리스트 요소 수정 전 [1, 2, 3] 후 [5, 6, 7]

함수의 시간을 측정하는 함수, 시간관련 함수

# fuc에 측정대상 함수를 넣는다 def whatTime(fuc,var): import time t1=time.perf_counter() fuc(var) t2=time.perf_counter() return t2-t1 오늘날짜 ( from datetime import datetime ) , 실행시간 측정(import time) datetime.today() 현재 날짜 datetime.today().year 현재 연도 datetime.today().month 현재 월 datetime.today().day 현재 일 datetime.today().hour 현재 시간 datetime.today().strftime("%Y%m%d%H%M%S") yyyymmddhhmmss 형태로 출력 datetime.today()..

문자열 함수

"string".zfill(width) 앞에 0을 채워서 스트링의 길이 width로 맞춤 "string".rjust(width,"c") c를 앞에 채워 스트링의 길이를 width에 맞춤 s.isalpha() 영문자인지 확인, 영문자면 true 리턴 chr(num) num번째 아스키코드 리턴 ord("string") string의 아스키코드 리턴 s.lower() 문자를 모두 소문자로 s.upper() 문자를 모두 대문자로 s.isalpha() 영문자인지 확인, 영문자면 true 리턴 s.replace("찾을값","바꿀값","바꿀횟수") 앞에서 부터 "찾을값"을 "바꿀값"으로 "바꿀횟수"만큼 바꿈. "바꿀횟수"를 주지않으면 모든 문자열에있는 "찾을값"을 다 바꿈

if __name__ == "__main__" 을 쓰는 이유

0. if __name__ 함수를 쓰는이유 파이썬에서 메인함수를 쓸때와 쓰지않을때의 차이는 해당 프로그램을 import했을 때 실행여부이다. 1. 메인함수를 작성하면, 해당 프로그램을 import했을 때 main() 내부에 있는 코드가 실행되지 않지만, 2. 메인함수를 작성하지 않으면, import했을 때 전역에 있는 모든 코드들이 실행된다. 1. 메인함수 작성 useMain.py def add(a,b): return a+b def sub(a,b): return a-b if __name__ == "__main__": print(add(1,4)) print(sub(4,1)) 1. useMain을 import시 아무결과값도 뜨지 않는다. import useMain Process finished with ex..

reverse와 reversed

1. reverse() : 리스트형태에 사용가능 (string에서 사용 불가능) ex) L.reverse()하면 L이 역순으로 정렬됨. ​ ​ 2. reversed(a): 리스트 및 문자에 사용가능 (return이 reversed형태이므로(입력값이 문자든 리스트든) list나 set등 iterator형식으로 바꿔야함) (문자를 입력값으로 넣어도 자동으로 list형식으로 바꿔주는 sorted()함수와는 다름) ex) list(reversed(word)) or set(reversed(myL))

if문 속 조건문의 순서

if문속에 다양한 조건문이 들어갈 때 조건문은 앞에서부터 차례대로 판단된다. ​​ 1. 오류구문이 앞에 있을때 L=[1,2,3,4] i=4 if (L[i]==0 or i==4): print("실행?") #오류 if 조건문속 L[i]는 i가 4이므로 indexErrror이 발생함. 따라서 위 코드는 에러 1. 오류구문이 뒤에 있을때 L=[1,2,3,4] i=4 if ( i==4 or L[i]==0 ): print("실행?") #작동 i=4라는 조건문에 의해 L[i]==0 이라는 조건문은 판단되지 않고 이하 if문 이하 명령문 실행.

[SW expert]5648 원자소멸시뮬레이션 #map

1. 풀이 처음에는 격자를 이용해서 풀려고 했다. (소스코드1) 0.5초 만에 만나는것을 구현하기 힘들어서 최대범위는 +-2000으로 했고, (x,y)를 (r,c)로 바꿔주기위해 r=2*x+2000, c=2*y+2000으로 하여 4000*4000의 격자를 만들어준 후 문제를 풀었다. 하지만 이 방법으로는 메모리 초과가 났다. ​ 따라서 아래와 같이 격자를 쓰지 않는 방법으로 문제를 풀었다. (1) atomD에 현재 원자들의 상태와 상태를 저장한다 (2) 이동시킨다 - 범위 밖이면 삭제한다 (이동할 때 원자가 범위 밖에서 만나는 경우는 없으므로) - 범위 안이면 cheakD에 저장하고, 바뀐 위치를 새롭게 atomD에 저장한다 (이때 cheakD는 dictionary형태로, key값을 (행,열)과 같은 튜..

알고리즘/구현 2020.06.18

[백준]1141 접두사 #문자열

1. 풀이 (1) 다른단어의 접두사가 되는 단어는 접두사X 리스트에서 제거한다. (제거 후 남는 단어의 집합이 곧 접두사x집합) ex) h,hi,xi, hio, run, hcc, hipo, runn, runc, runni, running ​ (2) 다른단어의 접두사가 되는 단어는 항상 다른단어보다 크기가 작거나 같다. 따라서 문자열의 길이가 짧은 순서대로 정렬을 하고, 자기 위치보다 뒤에있는 단어와만 비교한다. ​ 2. 소스코드 N=int(input()) L=[] for i in range(N): word=input() L.append(word) L.sort(key=len) ans=0 for i in range(N): nowWord=L[i] isHead=False for j in range(i+1,N):..

알고리즘/구현 2020.06.18